Als «cardinality-estimates» getaggte Fragen

1
SQL Server 2014: Gibt es eine Erklärung für die inkonsistente Schätzung der Kardinalität von Self-Joins?
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 …



2
Kardinalitätsschätzung für LIKE-Operator (lokale Variablen)
Ich hatte den Eindruck, dass bei Verwendung des LIKEOperators in allen für unbekannte Szenarien optimierten Szenarien sowohl die alten als auch die neuen CEs eine Schätzung von 9% verwenden (vorausgesetzt, dass relevante Statistiken verfügbar sind und der Abfrageoptimierer nicht auf Selektivitätsschätzungen zurückgreifen muss). Wenn ich die folgende Abfrage für die …

2
Warum schätzt der Verkettungsoperator weniger Zeilen als seine Eingaben?
Im folgenden Abfrageplan-Snippet scheint es offensichtlich, dass die Zeilenschätzung für den ConcatenationOperator ~4.3 billion rowsoder die Summe der Zeilenschätzungen für seine beiden Eingaben sein sollte. Es wird jedoch eine Schätzung von ~238 million rowserstellt, die zu einem Suboptimum Sort/ Stream Aggregateeiner Suboptimalstrategie führt, bei der Hunderte von GB an Daten …


1
Warnung im Abfrageplan "Kardinalitätsschätzung"
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 Die obige Abfrage enthält eine Warnung im Abfrageplan. <Warnings> <PlanAffectingConvert ConvertIssue="Cardinality Estimate" Expression="CONVERT(varchar(10),[xx].[dbo].[T].[ID],0)" /> </Warnings> Warum hat es die Warnung? …


1
Kardinalitätsschätzung außerhalb des Histogramms
Installieren Ich habe Probleme beim Verstehen einer Kardinalitätsschätzung. Hier ist mein Testaufbau: die 2010-Version der Stack Overflow-Datenbank SQL Server 2017 CU15 + DDR (KB4505225) - 14.0.3192.2 das neue CE (Kompatibilitätsstufe 140) Ich habe diesen proc: USE StackOverflow2010; GO CREATE OR ALTER PROCEDURE #sp_PostsByCommentCount @CommentCount int AS BEGIN SELECT * FROM …

1
Verschüttetes in Tempdb sortieren, aber geschätzte Zeilen entsprechen den tatsächlichen Zeilen
Auf einem SQL Server 2016 SP2 mit maximal 25 GB Arbeitsspeicher haben wir eine Abfrage, die ungefähr 80 Mal in einer Minute ausgeführt wird. Die Abfrage verschüttet ungefähr 4000 Seiten in Tempdb. Dies verursacht eine Menge IO auf der Festplatte von Tempdb. Wenn Sie sich den Abfrageplan ansehen (vereinfachte Abfrage), …

1
Сardinality-Schätzung von teilweise abdeckenden Range-Prädikaten
Im Moment versuche ich herauszufinden, wie SQL Server die Kardinalität von Bereichsprädikaten bewertet, die den Histogrammschritt teilweise abdecken. Im Internet stieß ich bei der Schätzung der Kardinalität für und für den Wert der Intra-Step-Statistik auf eine ähnliche Frage, und Paul White gab eine ziemlich interessante Antwort darauf. Nach Pauls Antwort …

2
Kardinalitätsschätzungsproblem beim inneren Join
Ich habe Probleme zu verstehen, warum die Zeilenschätzung so schrecklich falsch ist. Hier ist mein Fall: Einfache Verknüpfung - unter Verwendung von SQL Server 2016 SP2 (dasselbe Problem auf SP1), Dbcompatiblity = 130. select Amount_TransactionCurrency_id, CurrencyShareds.id from CurrencyShareds INNER JOIN annexes ON Amount_TransactionCurrency_id = CurrencyShareds.Id option (QUERYTRACEON 3604, QUERYTRACEON 2363); …

1
Änderungen an Schätzungen für Prädikate, die SUBSTRING () in SQL Server 2016 enthalten?
Gibt es eine Dokumentation oder Recherche zu Änderungen in SQL Server 2016 hinsichtlich der Schätzung der Kardinalität für Prädikate, die SUBSTRING () oder andere Zeichenfolgenfunktionen enthalten? Der Grund, den ich frage, ist, dass ich eine Abfrage betrachte, deren Leistung sich im Kompatibilitätsmodus 130 verschlechtert hat, und der Grund eine Änderung …

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 …

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.