Als «execution-plan» getaggte Fragen

Die vom Abfrageoptimierer ausgewählte Strategie zum Verarbeiten einer Abfrage.

1
Warum wählt PostgreSQL die teurere Join-Bestellung?
PostgreSQL mit Standardeinstellungen, plus default_statistics_target=1000 random_page_cost=1.5 Ausführung PostgreSQL 10.4 on x86_64-pc-linux-musl, compiled by gcc (Alpine 6.4.0) 6.4.0, 64-bit Ich habe gesaugt und analysiert. Die Abfrage ist sehr einfach: SELECT r.price FROM account_payer ap JOIN account_contract ac ON ap.id = ac.account_payer_id JOIN account_schedule "as" ON ac.id = "as".account_contract_id JOIN schedule s …



1
Wie deterministisch ist die Erstellung eines Ausführungsplans in SQL Server?
Gegeben die folgenden Konstanten: Dieselbe Datenbank mit derselben Struktur (Tabellen, Indizes usw.) Die gleichen Daten Dieselbe SQL Server- und Hardwarekonfiguration Die gleichen Statistiken Die gleichen SET-Optionen im Client Dieselben SQL Server-Versionen Die gleichen Ablaufverfolgungsflags Wird SQL Server angesichts dieser Konstanten für eine bestimmte Abfrage immer denselben Plan erstellen? Wenn nicht, …

2
Wann aktualisiert sp_executesql den Abfrageplan?
Sie müssen mir meine Naivität verzeihen, da ich kein DBA bin. Meines Wissens nach müssen die Statistiken einer Datenbankänderung und einer gespeicherten Prozedur im Laufe der Zeit neu kompiliert werden, um den Abfrageplan mit den neuesten Statistiken auf dem neuesten Stand zu halten. Angenommen , ich habe eine gespeicherte Prozedur …


1
Speichert SQL Server 2008 das Erstellungsdatum von Ausführungsplänen?
Wir haben kürzlich eine von uns verwendete Anwendung aktualisiert, bei der das Schema für die Datenbank geändert wurde. Diese Änderungen hätten dazu führen können, dass zwischengespeicherte Ausführungspläne verworfen wurden. Wenn SQL Server gezwungen gewesen wäre, eine Reihe neuer Pläne zu erstellen, hätte dies die Benutzererfahrung möglicherweise verlangsamt. Ich würde gerne …



1
Wie schätzt der Optimierer von SQL Server die Anzahl der Zeilen in einer verknüpften Tabelle?
Ich führe diese Abfrage in der AdventureWorks2012- Datenbank aus: SELECT s.SalesOrderID, d.CarrierTrackingNumber, d.ProductID, d.OrderQty FROM Sales.SalesOrderHeader s JOIN Sales.SalesOrderDetail d ON s.SalesOrderID = d.SalesOrderID WHERE s.CustomerID = 11077 Wenn ich mir den geschätzten Ausführungsplan ansehe, sehe ich Folgendes: Die anfängliche Indexsuche (oben rechts) verwendet den Index IX_SalesOrderHeader_CustomerID und durchsucht das …

3
Warum sollte der Operator Parallelität (Repartition Streams) die Zeilenschätzungen auf 1 reduzieren?
Ich verwende SQL Server 2012 Enterprise. Ich bin auf einen SQL-Plan gestoßen, der ein Verhalten aufweist, das ich nicht ganz intuitiv finde. Nach einem umfangreichen parallelen Index-Scan-Vorgang wird ein Parallelismus-Vorgang (Repartition Streams) ausgeführt, der jedoch die vom Index-Scan zurückgegebenen Zeilenschätzungen (Object10.Index2) beendet und die Schätzung auf 1 reduziert. Ich habe …

2
Warum profitiert meine WHERE-Klausel von einer "eingeschlossenen" Spalte?
Laut dieser Antwort profitiert die Abfrage nicht von einem Index, es sei denn, ein Index wird über die Spalten erstellt, die zum Einschränken verwendet werden. Ich habe diese Definition: CREATE TABLE [dbo].[JobItems] ( [ItemId] UNIQUEIDENTIFIER NOT NULL, [ItemState] INT NOT NULL, [ItemPriority] INT NOT NULL, [CreationTime] DATETIME NULL DEFAULT GETUTCDATE(), …




Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.