Qualche tempo fa, Brent Ozar ha pubblicato un post che descrive in dettaglio alcune delle differenze tra SQL Server e PostgreSQL: Due differenze importanti tra SQL Server e PostgreSQL Il primo punto ("I CTE sono recinzioni di ottimizzazione") ha attirato la mia attenzione, poiché è ovvio che nell'esempio fornito, SQL …
Per farla breve, stiamo aggiornando piccole tabelle di persone con valori da una tabella di persone molto grande. In un test recente, l'esecuzione di questo aggiornamento richiede circa 5 minuti. Ci siamo imbattuti in quella che sembra la più stupida ottimizzazione possibile, che sembra funzionare perfettamente! La stessa query ora …
Ho una tabella in un database SQL Server con un indice cluster sulla chiave primaria. La tabella ha 1 milione di righe. Se elimino 10.000 righe dalla tabella, l'indice viene ristrutturato durante l'esecuzione dell'eliminazione? L'operazione di cancellazione fa parte della procedura memorizzata. Alla volta, più di un client può eseguire …
Secondo Craig Ringer : Sebbene di solito sia una buona idea creare un indice su (o includere) le colonne di chiave esterna sul lato di riferimento, non è necessario. Ogni indice che aggiungi rallenta leggermente le operazioni DML, quindi paghi un costo di rendimento su ogni INSERT, UPDATEo DELETE. Se …
Sto usando il seguente CTE ricorsivo come esempio minimo, ma in generale, l'ottimizzatore deve usare cardinalità "indovinate" predefinite per i CTE ricorsivi: with recursive w(n) as ( select 1 union all select n+1 from w where n<5 ) select * from w; /* n --- 1 2 3 4 5 …
Mantengo un database di archivio che memorizza i dati storici in viste partizionate. La colonna di partizionamento è un datetime. Ogni tabella sotto la vista memorizza un mese di dati. Vincoliamo gli eventi su ogni tabella con un vincolo check sulla colonna datetime. Ciò consente all'ottimizzatore di limitare le tabelle …
In un progetto a cui sto lavorando, ogni modifica alle righe in alcune tabelle del database deve essere tracciata per ulteriore controllo o rollback. Deve essere facile trovare chi ha modificato la riga, da quale indirizzo IP e quando ed essere in grado di ripristinare la versione precedente. La stessa …
Quando si aggiungono NOT NULLcolonne con un DEFAULTvalore - PostgreSQL ottimizza questa operazione? Nel caso in cui la tabella abbia n righe, un'alter-table-add-column non ottimizzata produrrebbe n scritture del valore predefinito - che potrebbe essere molto doloroso, ovviamente. Con l'ottimizzazione il DB creerebbe istantaneamente la nuova colonna, memorizzando solo una …
Considera questa query che consiste in Nself-join: select t1.* from [Table] as t1 join [Table] as t2 on t1.Id = t2.Id -- ... join [Table] as tN on t1.Id = tN.Id Produce un piano di esecuzione con N scansioni dell'indice cluster e join unione N-1. Onestamente, non vedo alcun motivo …
La conversione di una colonna normale in una colonna calcolata persistente sta impedendo a questa query di eseguire ricerche di indice. Perché? Testato su diverse versioni di SQL Server, tra cui SP1 CU1 2016. repros Con una colonna calcolata Con una colonna regolare Il problema è con table1, col7. Le …
So che quando si tratta di utilizzare un indice o una scansione di tabelle, SQL Server utilizza le statistiche per vedere quale è meglio. Ho una tabella con 20 milioni di righe. Ho un indice su (SnapshotKey, Measure) e questa query: select Measure, SnapshotKey, MeasureBand from t1 where Measure = …
Devo ottimizzare SELECTun'istruzione, ma SQL Server esegue sempre una scansione dell'indice anziché una ricerca. Questa è la query che, ovviamente, si trova in una procedura memorizzata: CREATE PROCEDURE dbo.something @Status INT = NULL, @IsUserGotAnActiveDirectoryUser BIT = NULL AS SELECT [IdNumber], [Code], [Status], [Sex], [FirstName], [LastName], [Profession], [BirthDate], [HireDate], [ActiveDirectoryUser] FROM …
Modificato: perché le sessioni che segnalano di essere bloccate ma in attesa con PAGELATCH_*e non LCK_M_i tipi di attesa correlati? In precedenza avevo ipotizzato che il server SQL segnalasse solo sessioni di blocco nella colonna blocking_session_Id. Se le sessioni bloccate stavano aspettando un blocco logico e non altro come a …
We use cookies and other tracking technologies to improve your browsing experience on our website,
to show you personalized content and targeted ads, to analyze our website traffic,
and to understand where our visitors are coming from.
By continuing, you consent to our use of cookies and other tracking technologies and
affirm you're at least 16 years old or have consent from a parent or guardian.