Pytania otagowane jako execution-plan

Strategia wybrana przez optymalizator zapytania do przetworzenia zapytania.


1
Dlaczego PostgreSQL wybiera droższe zamówienie na dołączenie?
PostgreSQL używa domyślnych ustawień plus default_statistics_target=1000 random_page_cost=1.5 Wersja PostgreSQL 10.4 on x86_64-pc-linux-musl, compiled by gcc (Alpine 6.4.0) 6.4.0, 64-bit Odkurzyłem i przeanalizowałem. Zapytanie jest bardzo proste: 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 ON "as".id …

3
Dlaczego wybranie wszystkich wynikowych kolumn tego zapytania jest szybsze niż wybranie jednej kolumny, na której mi zależy?
Mam zapytanie, w którym użycie select *nie tylko znacznie mniej odczytów, ale także zużywa znacznie mniej czasu procesora niż użycie select c.Foo. To jest zapytanie: select top 1000 c.ID from ATable a join BTable b on b.OrderKey = a.OrderKey and b.ClientId = a.ClientId join CTable c on c.OrderId = b.OrderId …



2
Kiedy sp_executesql odświeża plan zapytań?
Musisz wybaczyć mojej naiwności, ponieważ nie jestem DBA, ale rozumiem, że z czasem statystyki zmiany bazy danych i procedura składowana muszą zostać ponownie skompilowane, aby plan kwerendy był aktualny z najnowszymi statystykami. Zakładając, że mam procedurę przechowywaną w mojej bazy danych, która jest zrekompilowane przed najnowszymi statystykami w pewnym regularnych …

1
Czy SQL Server 2008 przechowuje datę utworzenia planów wykonania?
Niedawno zaktualizowaliśmy używaną przez nas aplikację, która wymagała modyfikacji schematu bazy danych. Te zmiany mogły zmusić do odrzucenia buforowanych planów wykonania. Gdyby SQL Server został zmuszony do stworzenia szeregu nowych planów, mogłoby to spowolnić wrażenia użytkownika. Chciałbym dowiedzieć się, czy tak właśnie było. Moje pytanie brzmi: czy SQL Server 2008 …



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
Dlaczego operator równoległości (strumieni podziału) zredukowałby szacunki rzędu do 1?
Korzystam z programu SQL Server 2012 Enterprise. Natknąłem się na plan SQL, który wykazuje pewne zachowania, których nie uważam za całkowicie intuicyjne. Po ciężkiej operacji Parallel Index Scan dochodzi do operacji Parallelism (Repartition Streams), ale zabija oszacowania wierszy zwracane przez skanowanie indeksu (Object10.Index2), zmniejszając oszacowanie do 1. Przeprowadziłem pewne wyszukiwanie, …

2
Dlaczego moja klauzula WHERE korzysta z kolumny „uwzględnione”?
Zgodnie z tą odpowiedzią , o ile indeks nie zostanie zbudowany na kolumnach służących do ograniczenia, zapytanie nie skorzysta z indeksu. Mam tę definicję: CREATE TABLE [dbo].[JobItems] ( [ItemId] UNIQUEIDENTIFIER NOT NULL, [ItemState] INT NOT NULL, [ItemPriority] INT NOT NULL, [CreationTime] DATETIME NULL DEFAULT GETUTCDATE(), [LastAccessTime] DATETIME NULL DEFAULT GETUTCDATE(), …




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.