Page 1 of 1

SQL: cardinalita' nell'header della tabella

PostPosted: 03 Aug 2021, 15:00
by frog
Si tratta di inserire la cardinalita' (cioe' il numero di righe) nella intestazione della tabella, questo in modo che la select count * sia rapida anche ler le tabelle di volume.
SQL> select first 0 records count from table <tablename>
Dove il numero di record=0 sta per la select dall'intestazione della tabella.



Opinioni in merito sono gradite.



Regards,
The frog

Re: SQL: cardinalita' nell'header della tabella

PostPosted: 03 Aug 2021, 16:00
by frog
Si puo' scegliere, per le tabelle di volume, di far aggiornare la cardinalita' dell'header ogni tot inserimenti ed ogni tot cancellazioni. Questo in modo da tenere abbastanza agiornata la cardinalita' dell'intestazione, al vero e prorprio select count * fom <tblename>



Opinioni in merito restano gradite.



Regards,
The frog

Re: SQL: cardinalita' nell'header della tabella

PostPosted: 04 Aug 2021, 04:51
by frog
Si potra' impostare l'aggiornamento della cardinalita' nell'intestazione:
- ad ogni commit
- per ogni delta di delete o insert con una commit
- ad ogni delta di tempo con una commit



Opinioni in merito restano gradite.



Regards,
The frog

Re: SQL: cardinalita' nell'header della tabella

PostPosted: 04 Aug 2021, 05:13
by frog
In particolare al delta insert o delete si puo' scegliere di fare una select count * oppure di addizionare (o sottrarre nel caso del delete) il delta direttamente alla cardinalita' dell'header.



Opinioni in merito restano gradite.



Regards,
The frog

Re: SQL: cardinalita' nell'header della tabella

PostPosted: 04 Aug 2021, 05:56
by frog
In altre parole si puo' scegliere di aggiornare velocemente la cardinalita' con un delta rows inserite e cancellate, oppure si puo' aggiornare completamente la tabella con un select count * che ovviamente sulle tabelle di volume e' piu' lento.



Opinioni in merito restano gradite.



Regards,
The frog

Re: SQL: cardinalita' nell'header della tabella

PostPosted: 13 Aug 2021, 05:47
by frog
Si sottolinea che la select count * completa su tutte le tabelle deve essere un processo in background a bassa priorita' di Oracle.



Opinioni in merito restano gradite.



Regards,
The frog