Ho questa tabella: CREATE TABLE [dbo].[Accounts] ( [AccountId] UNIQUEIDENTIFIER UNIQUE NOT NULL DEFAULT NEWID(), -- WHATEVER other columns ); GO CREATE UNIQUE CLUSTERED INDEX [AccountsIndex] ON [dbo].[Accounts]([AccountId] ASC); GO Questa query: DECLARE @result UNIQUEIDENTIFIER SELECT @result = AccountId FROM Accounts WHERE AccountId='guid-here' viene eseguito con un piano di query costituito …
Dì, abbiamo una domanda come questa: select a.*,b.* from a join b on a.col1=b.col1 and len(a.col1)=10 Supponendo che la query precedente utilizzi un hash join e abbia un residuo, la chiave della sonda sarà col1e il residuo sarà len(a.col1)=10. Ma mentre faccio un altro esempio, ho potuto vedere sia la …
Le tre SELECTaffermazioni in questo codice USE [tempdb]; GO SET NOCOUNT ON; CREATE TABLE dbo.persist_test ( id INT NOT NULL , id5 AS (id * 5) , id5p AS (id * 5) PERSISTED ); INSERT INTO dbo.persist_test (id) VALUES (1), (2), (3); SELECT id FROM dbo.persist_test; SELECT id5 FROM dbo.persist_test; …
Questo è uno spin-off dai commenti alla domanda precedente: La query Postgres 9.4.4 richiede un'eternità Usando PostgreSQL 9.4, sembra esserci sempre una Recheck Cond:riga dopo le scansioni dell'indice bitmap nei piani di query emessi da EXPLAIN. Come EXPLAINnell'output della domanda di riferimento: -> Bitmap Heap Scan on table_three (cost=2446.92..19686.74 rows=8159 …
Ho un database di SQL Server 2012. Ho notato il valore di Reason for early termination of statement optimizationalcune domande e tutte hanno dato Good Enough Plan Found. Ora le mie domande sono: Quali sono tutti i possibili tipi di "Motivo della risoluzione anticipata dell'ottimizzazione delle dichiarazioni". Ho cercato questo …
Piani di esecuzione grafica di SQL Server letti da destra a sinistra e dall'alto verso il basso. C'è un ordine significativo nell'output generato da SET STATISTICS IO ON? La seguente query: SET STATISTICS IO ON; SELECT * FROM Sales.SalesOrderHeader AS soh JOIN Sales.SalesOrderDetail AS sod ON soh.SalesOrderID = sod.SalesOrderID JOIN …
Questa domanda è stata migrata dallo Stack Overflow perché è possibile rispondere allo scambio dello stack degli amministratori di database. Migrato 7 anni fa . Ho un'istruzione SQL UPDATE con una clausola "TOP (X)" e la riga in cui sto aggiornando i valori ha circa 4 miliardi di righe. Quando …
Sto risolvendo i problemi di una procedura memorizzata con prestazioni scadenti. Questa sezione della procedura genera un avviso NO JOIN PREDICATE select method = case methoddescription when 'blah' then 'Ethylene Oxide' when NULL then 'N/A' else methoddescription end, testmethod = case methoddescription when 'blah' then 'Biological Indicators' when NULL then …
Stavo cercando qualcos'altro quando mi sono imbattuto in questa cosa. Stavo generando tabelle di test con alcuni dati al suo interno ed eseguendo query diverse per scoprire in che modo i diversi modi di scrivere query influiscono sul piano di esecuzione. Ecco lo script che ho usato per generare dati …
Questo potrebbe rientrare nella categoria di opinione, ma sono curioso di sapere se le persone utilizzano il flag di traccia 4199 come parametro di avvio per SQL Server. Per quelli che l'hanno usato, in quali circostanze hai riscontrato la regressione della query? Sembra certamente un potenziale vantaggio in termini di …
Quali sono le condizioni che generano un avviso relativo al piano di esecuzione "Sovvenzione eccessiva" ? La concessione della memoria di query ha rilevato "ExcessiveGrant", che potrebbe influire sull'affidabilità. Dimensione della concessione: 5128 KB iniziali, 5128 KB finali, 16 KB utilizzati. SSMS Plan Explorer Showplan xml <Warnings> <MemoryGrantWarning GrantWarningKind="Excessive Grant" …
Data la seguente tabella heap con 400 righe numerate da 1 a 400: DROP TABLE IF EXISTS dbo.N; GO SELECT SV.number INTO dbo.N FROM master.dbo.spt_values AS SV WHERE SV.[type] = N'P' AND SV.number BETWEEN 1 AND 400; e le seguenti impostazioni: SET NOCOUNT ON; SET STATISTICS IO, TIME OFF; SET …
Ho un caso tipico in cui lo sniffing dei parametri provoca l'atterraggio di un piano di esecuzione "errato" nella cache del piano, rendendo le esecuzioni successive della mia procedura memorizzata molto lente. Posso "risolvere" questo problema con variabili locali OPTIMIZE FOR ... UNKNOWN, e OPTION(RECOMPILE). Tuttavia, posso anche immergermi nella …
create table T(ID int identity primary key) insert into T default values insert into T default values go select cast(ID as varchar(10)) as ID from T where ID = 1 La query sopra ha un avviso nel piano di query. <Warnings> <PlanAffectingConvert ConvertIssue="Cardinality Estimate" Expression="CONVERT(varchar(10),[xx].[dbo].[T].[ID],0)" /> </Warnings> Perché ha l'avvertimento? …
In risposta al conteggio SQL distinto sulla partizione, Erik Darling ha pubblicato questo codice per ovviare alla mancanza di COUNT(DISTINCT) OVER (): SELECT * FROM #MyTable AS mt CROSS APPLY ( SELECT COUNT(DISTINCT mt2.Col_B) AS dc FROM #MyTable AS mt2 WHERE mt2.Col_A = mt.Col_A -- GROUP BY mt2.Col_A ) AS …
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.