Pytania otagowane jako optimization

W kontekście bazy danych optymalizacja odnosi się do procesu optymalizatora zapytań, który wybiera efektywny fizyczny plan wykonania.

1
Jakie reguły określają, kiedy SQL Server używa CTE jako „ogrodzenia optymalizacyjnego”?
Jakiś czas temu Brent Ozar opublikował post opisujący niektóre różnice między SQL Server a PostgreSQL: Dwie ważne różnice między SQL Server a PostgreSQL Pierwszy punkt („CTE to ogrodzenia optymalizacyjne”) przykuł moją uwagę, ponieważ jest oczywiste, że w podanym przykładzie SQL Server łączy CTE i główne zapytanie razem i optymalizuje je …



1
Czy B-Tree jest ponownie równoważony podczas usuwania danych z tabeli SQL Server z indeksem klastrowym?
Mam tabelę w bazie danych SQL Server z indeksem klastrowym na kluczu podstawowym. Tabela ma 1 milion wierszy. Jeśli usunę 10 000 wierszy z tabeli, czy indeks zostanie zrestrukturyzowany podczas operacji usuwania? Operacja usuwania jest częścią procedury składowanej. Jednocześnie więcej niż jeden klient może wykonywać procedurę przechowywaną, jednak każde pojedyncze …

2
Jak ustalić koszt / korzyść z dodania indeksu?
Według Craiga Ringera : Chociaż zwykle dobrym pomysłem jest utworzenie indeksu w kolumnach kluczy obcych po stronie odniesienia (lub w tym), nie jest to wymagane. Każdy indeks dodać spowalnia operacje DML lekko w dół, więc płacisz koszt wykonania na każdym INSERT, UPDATElub DELETE. Jeśli indeks jest rzadko używany, nie warto …


1
Konwersja typu w wyrażeniu może wpływać na „CardinalityEstimate” w wyborze planu zapytań?
Prowadzę archiwalną bazę danych, która przechowuje dane historyczne w widokach podzielonym na partycje. Kolumna partycjonowania jest datetime. Każda tabela w widoku zawiera jeden miesiąc danych. Ograniczamy zdarzenia w każdej tabeli ograniczeniem sprawdzania w kolumnie datetime. Dzięki temu optymalizator może ograniczyć tabele wyszukiwane w zapytaniach filtrujących kolumnę daty i godziny zdarzenia. …


2
Czy PostgreSQL optymalizuje dodawanie kolumn z DOMYŚLNYMI wartościami innymi niż NULL?
Podczas dodawania NOT NULLkolumn z DEFAULTwartością - czy PostgreSQL optymalizuje tę operację? W przypadku, gdy tabela ma n wierszy, niezoptymalizowana kolumna alter-table-add-kolumna dałaby n zapisów wartości domyślnej - co oczywiście może być bardzo bolesne. Dzięki optymalizacji DB utworzy natychmiast nową kolumnę, zapisze tylko jedną kopię wartości domyślnej, która zostanie zwrócona, …

3
Samozłączenie na kluczu podstawowym
Rozważ to zapytanie, które składa się z Nsamodzielnego łączenia: select t1.* from [Table] as t1 join [Table] as t2 on t1.Id = t2.Id -- ... join [Table] as tN on t1.Id = tN.Id Tworzy plan wykonania z N skanami indeksów klastrowych i łączeniami łączenia N-1. Szczerze mówiąc, nie widzę żadnych …

1
Utrwalona kolumna obliczeniowa powodująca skanowanie
Konwersja zwykłej kolumny na utrwaloną kolumnę obliczeniową powoduje, że to zapytanie nie może wyszukiwać indeksu. Dlaczego? Testowane na kilku wersjach SQL Server, w tym 2016 SP1 CU1. Repros Z kolumną obliczeniową Ze zwykłą kolumną Problem polega na tym table1, że col7. Tabele i zapytania są częściową (i uproszczoną) wersją oryginałów. …

3
Plan wykonania NIE korzysta z INDEKSU, wykorzystuje skanowanie tabeli
Wiem, że jeśli chodzi o użycie indeksu lub skanowania tabeli, SQL Server używa statystyk, aby zobaczyć, który jest lepszy. Mam stół z 20 milionami wierszy. Mam indeks na (SnapshotKey, Measure) i to zapytanie: select Measure, SnapshotKey, MeasureBand from t1 where Measure = 'FinanceFICOScore' group by Measure, SnapshotKey, MeasureBand Kwerenda zwraca …

5
Dostaję skan, ale spodziewam się poszukiwania
Muszę zoptymalizować SELECTinstrukcję, ale SQL Server zawsze skanuje indeks zamiast wyszukiwania. Oto zapytanie, które oczywiście znajduje się w procedurze przechowywanej: CREATE PROCEDURE dbo.something @Status INT = NULL, @IsUserGotAnActiveDirectoryUser BIT = NULL AS SELECT [IdNumber], [Code], [Status], [Sex], [FirstName], [LastName], [Profession], [BirthDate], [HireDate], [ActiveDirectoryUser] FROM Employee WHERE (@Status IS NULL OR …


2
MySQL: delete… where..in () vs delete..from..join i zablokowane tabele przy usuwaniu z podselekcją
Oświadczenie: przepraszam za brak wiedzy na temat wewnętrznych elementów bazy danych. Oto jest: Uruchamiamy aplikację (nie napisaną przez nas), która ma duży problem z wydajnością podczas okresowego zadania czyszczenia w bazie danych. Zapytanie wygląda następująco: delete from VARIABLE_SUBSTITUTION where BUILDRESULTSUMMARY_ID in ( select BUILDRESULTSUMMARY_ID from BUILDRESULTSUMMARY where BUILDRESULTSUMMARY.BUILD_KEY = "BAM-1"); …

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.