Pytania otagowane jako cardinality-estimates

1
SQL Server 2014: jakieś wyjaśnienie niespójnego oszacowania liczności samodzielnego przyłączenia?
Rozważ następujący plan zapytań w programie SQL Server 2014: W planie zapytań samozłączenie ar.fId = ar.fIddaje szacunkową wartość 1 wiersza. Jest to jednak logicznie niespójne oszacowanie: arma 20,608wiersze i tylko jedną wyraźną wartość fId(dokładnie odzwierciedloną w statystykach). Dlatego to połączenie tworzy pełny iloczyn krzyżowy wierszy ( ~424MMwierszy), co powoduje, że …

2
Dlaczego funkcja LEN () źle nie docenia liczności w SQL Server 2014?
Mam tabelę z kolumną ciągów i predykatem, który sprawdza wiersze o określonej długości. W SQL Server 2014 widzę szacunkową wartość 1 wiersza bez względu na sprawdzaną długość. Daje to bardzo kiepskie plany, ponieważ w rzeczywistości są tysiące, a nawet miliony wierszy, a SQL Server decyduje się umieścić tę tabelę na …


2
Oszacowanie liczności dla operatora LIKE (zmienne lokalne)
Miałem wrażenie, że podczas korzystania z LIKEoperatora we wszystkich optymalizacjach dla nieznanych scenariuszy zarówno starsze, jak i nowe CE używają szacunku 9% (zakładając, że odpowiednie statystyki są dostępne, a optymalizator zapytań nie musi uciekać się do domysłów selektywności). Podczas wykonywania poniższego zapytania względem bazy danych kredytów otrzymuję różne szacunki w …

2
Dlaczego operator konkatenacji szacuje mniej wierszy niż dane wejściowe?
W poniższym fragmencie planu zapytania wydaje się oczywiste, że oszacowanie wiersza dla Concatenationoperatora powinno być ~4.3 billion rowslub suma oszacowań wiersza dla jego dwóch danych wejściowych. Jednak szacunek ~238 million rowsjest generowany, co prowadzi do nieoptymalnej Sort/ Stream Aggregatestrategii, która przelewa setki GB danych do tempdb. Logicznie spójna ocena w …

3
Dlaczego ta szacunkowa liczność przyłączeń jest tak duża?
Doświadczam, jak sądzę, niemożliwie wysokiej wartości szacunkowej liczności dla następującego zapytania: SELECT dm.PRIMARY_ID FROM ( SELECT COALESCE(d1.JOIN_ID, d2.JOIN_ID, d3.JOIN_ID) PRIMARY_ID FROM X_DRIVING_TABLE dt LEFT OUTER JOIN X_DETAIL_1 d1 ON dt.ID = d1.ID LEFT OUTER JOIN X_DETAIL_LINK lnk ON d1.LINK_ID = lnk.LINK_ID LEFT OUTER JOIN X_DETAIL_2 d2 ON dt.ID = d2.ID …

1
Ostrzeżenie w planie zapytań „Szacunek liczności”
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 Powyższe zapytanie zawiera ostrzeżenie w planie zapytań. <Warnings> <PlanAffectingConvert ConvertIssue="Cardinality Estimate" Expression="CONVERT(varchar(10),[xx].[dbo].[T].[ID],0)" /> </Warnings> Dlaczego ma ostrzeżenie? Jak rzutowanie na …


1
Oszacowanie liczności poza histogramem
Ustawiać Mam problem ze zrozumieniem oszacowania liczności. Oto moja konfiguracja testowa: wersja 2010 bazy danych przepełnienia stosu SQL Server 2017 CU15 + GDR (KB4505225) - 14.0.3192.2 nowy CE (poziom zgodności 140) Mam ten proc: USE StackOverflow2010; GO CREATE OR ALTER PROCEDURE #sp_PostsByCommentCount @CommentCount int AS BEGIN SELECT * FROM dbo.Posts …


1
Oszacowanie normalności częściowo pokrywających predykatów zasięgu
W tej chwili próbuję dowiedzieć się, w jaki sposób SQL Server ocenia liczebność predykatów zakresu, które częściowo pokrywają krok histogramu. W Internecie, przy szacowaniu liczności liczebności dla i statystyki dla kroku w kroku , natrafiłem na podobne pytanie i Paul White udzielił na to dość interesującej odpowiedzi. Zgodnie z odpowiedzią …

2
Problem oszacowania liczności przy złączeniu wewnętrznym
Próbuję zrozumieć, dlaczego szacowanie wierszy jest tak bardzo błędne, oto mój przypadek: Proste dołączanie - przy użyciu SQL Server 2016 sp2 (ten sam problem na 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); SQL szacuje 1 wiersz, …

1
Zmiany w szacunkach dotyczących predykatów zawierających SUBSTRING () w SQL Server 2016?
Czy istnieje dokumentacja lub badanie dotyczące zmian w SQL Server 2016 dotyczących szacowania liczności dla predykatów zawierających SUBSTRING () lub inne funkcje łańcuchowe? Powodem, dla którego pytam, jest to, że szukałem zapytania, którego wydajność uległa pogorszeniu w trybie zgodności 130, a przyczyną była zmiana szacunku liczby wierszy pasujących do klauzuli …

1
Jak optymalizator SQL Server ocenia liczbę wierszy w połączonej tabeli?
Korzystam z tego zapytania w bazie danych AdventureWorks2012 : 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 Jeśli spojrzę na szacowany plan wykonania, zobaczę: Początkowe wyszukiwanie indeksu (prawy górny róg) korzysta z indeksu IX_SalesOrderHeader_CustomerID i przeszukuje dosłownie 11077. Szacuje …

3
Zapytanie 100 razy wolniejsze w SQL Server 2014, liczba wierszy Wiersz buforowania szacuje winowajcę?
Mam zapytanie, które działa w 800 milisekundach w SQL Server 2012 i zajmuje około 170 sekund w SQL Server 2014 . Myślę, że zawęziłem to do złej oceny liczności dla Row Count Spooloperatora. Przeczytałem trochę o operatorach buforowania (np. Tutaj i tutaj ), ale nadal mam problem ze zrozumieniem kilku …

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.