Beim Betrachten eines Ausführungsplans einer langsam laufenden Abfrage stellte ich fest, dass einige der Knoten eine Indexsuche und einige eine Indexsuche sind. Was ist der Unterschied zwischen Indexsuche und Indexsuche? Welches ist besser? Wie wählt SQL eine über die andere aus? Mir ist klar, dass dies 3 Fragen sind, aber …
Warum wird dieser einfachen Abfrage so viel Speicherplatz eingeräumt? -- Demo table CREATE TABLE dbo.Test ( TID integer IDENTITY NOT NULL, FilterMe integer NOT NULL, SortMe integer NOT NULL, Unused nvarchar(max) NULL, CONSTRAINT PK_dbo_Test_TID PRIMARY KEY CLUSTERED (TID) ); GO -- 100,000 example rows INSERT dbo.Test WITH (TABLOCKX) (FilterMe, SortMe) …
Daher hatten wir heute Morgen einen langen laufenden Prozess, der Probleme verursachte (30 Sek. + Laufzeit). Wir haben uns entschlossen zu prüfen, ob das Parameter-Sniffing die Schuld trägt. Also haben wir den proc umgeschrieben und die eingehenden Parameter auf Variablen gesetzt, um das Parameter-Sniffing zu umgehen. Ein bewährter Ansatz. Bam, …
Ich fange an, Ausführungspläne zu lernen und bin verwirrt darüber, wie genau ein Hash-Match funktioniert und warum es in einem einfachen Join verwendet wird: select Posts.Title, Users.DisplayName From Posts JOIN Users on Posts.OwnerUserId = Users.Id OPTION (MAXDOP 1) Soweit ich weiß, werden die Ergebnisse des Top-Index-Scans zum Hash und jede …
Bei einer mäßig komplexen Abfrage, die ich optimieren möchte, ist mir aufgefallen, dass das Entfernen der TOP nKlausel den Ausführungsplan ändert. Ich hätte gedacht, dass, wenn eine Abfrage TOP ndas Datenbankmodul enthält , die Abfrage ausgeführt wird, wobei die TOPKlausel ignoriert wird , und am Ende das Ergebnis auf die …
Ausführen der Abfrage von hier aus , um die Deadlock-Ereignisse aus der erweiterten Standardereignissitzung zu entfernen SELECT CAST ( REPLACE ( REPLACE ( XEventData.XEvent.value ('(data/value)[1]', 'varchar(max)'), '<victim-list>', '<deadlock><victim-list>'), '<process-list>', '</victim-list><process-list>') AS XML) AS DeadlockGraph FROM (SELECT CAST (target_data AS XML) AS TargetData FROM sys.dm_xe_session_targets st JOIN sys.dm_xe_sessions s ON s.address …
Warum gibt die folgende Abfrage unendlich viele Zeilen zurück? Ich hätte erwartet, dass die EXCEPTKlausel die Rekursion beendet. with cte as ( select * from ( values(1),(2),(3),(4),(5) ) v (a) ) ,r as ( select a from cte where a in (1,2,3) union all select a from ( select a …
Ich habe eine SQL-Abfrage, die ich optimieren möchte: DECLARE @Id UNIQUEIDENTIFIER = 'cec094e5-b312-4b13-997a-c91a8c662962' SELECT Id, MIN(SomeTimestamp), MAX(SomeInt) FROM dbo.MyTable WHERE Id = @Id AND SomeBit = 1 GROUP BY Id MyTable hat zwei Indizes: CREATE NONCLUSTERED INDEX IX_MyTable_SomeTimestamp_Includes ON dbo.MyTable (SomeTimestamp ASC) INCLUDE(Id, SomeInt) CREATE NONCLUSTERED INDEX IX_MyTable_Id_SomeBit_Includes ON dbo.MyTable …
Betrachten Sie den folgenden Abfrageplan in SQL Server 2014: Im Abfrageplan ar.fId = ar.fIdergibt eine Selbstverknüpfung eine Schätzung von 1 Zeile. Dies ist jedoch eine logisch inkonsistente Schätzung: Sie arenthält 20,608Zeilen und nur einen eindeutigen Wert von fId(in der Statistik genau wiedergegeben). Daher erzeugt dieser Join das vollständige Kreuzprodukt von …
Diese Frage wurde von Stack Overflow migriert, da sie in Stack Exchange für Datenbankadministratoren beantwortet werden kann. Vor 6 Jahren migriert . Ich habe eine dauerhaft berechnete Spalte in einer Tabelle, die einfach aus verketteten Spalten besteht, z CREATE TABLE dbo.T ( ID INT IDENTITY(1, 1) NOT NULL CONSTRAINT PK_T_ID …
Diese Frage wurde von Stack Overflow migriert, da sie in Stack Exchange für Datenbankadministratoren beantwortet werden kann. Vor 7 Jahren migriert . Ich optimiere die Leistung einer großen SQL Server 2008-Datenbank, und die IT-Gruppe ist nicht bereit, SHOWPLAN-Berechtigungen zu erteilen. In der Vergangenheit war "Ausführungsplan anzeigen" die effektivste Methode, um …
Eine Tabellenwertfunktion mit mehreren Anweisungen gibt das Ergebnis in einer Tabellenvariablen zurück. Werden diese Ergebnisse jemals wiederverwendet oder wird die Funktion bei jedem Aufruf vollständig ausgewertet?
Ich habe diesen Tisch: 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 Diese Abfrage: DECLARE @result UNIQUEIDENTIFIER SELECT @result = AccountId FROM Accounts WHERE AccountId='guid-here' Wird mit einem Abfrageplan ausgeführt, der aus …
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.