Pytania otagowane jako query-performance

W przypadku pytań dotyczących poprawy wydajności i / lub wydajności zapytań do bazy danych.

1
SQL Server - Obsługa lokalizacji ciągów w zagnieżdżonych niedeterministycznych stosach widoków
Podczas profilowania bazy danych natknąłem się na widok odwołujący się do niektórych niedeterministycznych funkcji, do których dostęp uzyskuje się 1000–2500 razy na minutę dla każdego połączenia w puli tej aplikacji. Prosty SELECTz widoku daje następujący plan wykonania: To wydaje się być złożonym planem dla widoku, który ma mniej niż tysiąc …

6
Wydajność a = 0 i b = 0 i… z = 0 vs a + b + c + d = 0
To proste pytanie, na które nie mogę znaleźć odpowiedzi. Jeśli chodzi o wydajność, jeśli mam WHEREklauzulę, na przykład: a=0 and b=0 and ... z=0Czy uzyskałbym jakąkolwiek wydajność, jeśli zastąpiłbym ten warunek a+b+...+z=0? Innymi słowy, czy jest jakikolwiek wzrost wydajności poprzez zastąpienie następujących Select * From MyTable Where A=0 and B=0 …

3
Ogromne dane i wydajność w SQL Server
Napisałem aplikację z zapleczem SQL Server, która gromadzi i przechowuje oraz bardzo dużą liczbę rekordów. Obliczyłem, że u szczytu średnia liczba zapisów wynosi około 3-4 miliardy dziennie (20 godzin pracy). Moje oryginalne rozwiązanie (zanim wykonałem faktyczne obliczenie danych) polegało na tym, że moja aplikacja wstawiała rekordy do tej samej tabeli, …

2
Zapytanie T-SQL przy użyciu zupełnie innego planu w zależności od liczby wierszy, które aktualizuję
Mam instrukcję SQL UPDATE z klauzulą ​​„TOP (X)”, a wiersz, w którym aktualizuję wartości, ma około 4 miliardów wierszy. Kiedy używam „TOP (10)”, otrzymuję jeden plan wykonania, który wykonuje się niemal natychmiast, ale kiedy używam „TOP (50)” lub większego, zapytanie nigdy (przynajmniej nie podczas oczekiwania) kończy się i używa zupełnie …


3
Wymuszanie odrębnego przepływu
Mam taki stół: CREATE TABLE Updates ( UpdateId INT NOT NULL IDENTITY(1,1) PRIMARY KEY, ObjectId INT NOT NULL ) Zasadniczo śledzenie aktualizacji obiektów o rosnącym ID. Konsument tej tabeli wybiera fragment 100 różnych identyfikatorów obiektów, uporządkowanych według UpdateIdi rozpoczynając od określonego UpdateId. Zasadniczo, śledząc, gdzie przerwał, a następnie sprawdzając wszelkie …

2
DOMYŚLNE OGRANICZENIE, warto?
Zwykle projektuję swoje bazy danych według następujących zasad: Nikt inny niż db_owner i sysadmin nie ma dostępu do tabel bazy danych. Role użytkowników są kontrolowane na poziomie aplikacji. Zwykle używam jednej roli db, aby przyznać dostęp do widoków, procedur przechowywanych i funkcji, ale w niektórych przypadkach dodam drugą regułę, aby …


2
Pytanie o wydajność „WYBIERZ TOP”
Mam zapytanie, które działa znacznie szybciej z select top 100i znacznie wolniej bez top 100. Liczba zwróconych rekordów wynosi 0. Czy możesz wyjaśnić różnicę w planach zapytań lub udostępnić linki tam, gdzie taka różnica jest wyjaśniona? Zapytanie bez toptekstu: SELECT --TOP 100 * FROM InventTrans JOIN InventDim ON InventDim.DATAAREAID = …

1
Operator użył tempdb do rozlewania danych podczas wykonywania z poziomem rozlewania 2
Usiłuję zminimalizować koszty sortowania w planie zapytań z ostrzeżeniem Operator usedtempdbto spill data during execution with spill level 2 Znalazłem kilka postów związanych z danymi wycieków podczas wykonywania z poziomem wycieku 1 , ale nie w poziomie 2. Poziom 1 wydaje się być spowodowany nieaktualnymi statystykami , a co z …

2
Dlaczego filtrowany indeks wartości IS NULL nie jest używany?
Załóżmy, że mamy taką definicję tabeli: CREATE TABLE MyTab ( ID INT IDENTITY(1,1) CONSTRAINT PK_MyTab_ID PRIMARY KEY ,GroupByColumn NVARCHAR(10) NOT NULL ,WhereColumn DATETIME NULL ) I filtrowany indeks nieklastrowany taki jak ten: CREATE NONCLUSTERED INDEX IX_MyTab_GroupByColumn ON MyTab (GroupByColumn) WHERE (WhereColumn IS NULL) Dlaczego ten indeks nie „obejmuje” tego zapytania: …

1
WYBIERZ TOP 1 z bardzo dużej tabeli w kolumnie indeksu jest bardzo wolny, ale nie w odwrotnej kolejności („desc”)
Mamy dużą bazę danych, około 1 TB, działającą na serwerze SQL Server 2014 na silnym serwerze. Wszystko działało dobrze przez kilka lat. Około 2 tygodnie temu wykonaliśmy pełną konserwację, która obejmowała: Zainstalowanie wszystkich aktualizacji oprogramowania; odbuduj wszystkie indeksy i kompaktowe pliki DB. Nie spodziewaliśmy się jednak, że na pewnym etapie …

3
Zawijanie zapytania w JEŚLI ISTNIEJE powoduje, że jest on bardzo wolny
Mam poniższe zapytanie: select databasename from somedb.dbo.bigtable l where databasename ='someval' and source <>'kt' and not exists(select 1 from dbo.smalltable c where c.source=l.source) Powyższe zapytanie kończy się w ciągu trzech sekund. Jeśli powyższe zapytanie zwraca jakąkolwiek wartość, chcemy, aby procedura przechowywana zakończyła się, więc przepisałem ją jak poniżej: If Exists( …

3
Wpływ indeksu na instrukcje aktualizacji, gdy kolumna aktualizacji nie znajduje się w indeksie
I ciągle widzę ludzi powiedzieć, że indeksy spowolnić update, deletea insert. Jest to używane jako instrukcja zbiorcza, tak jakby była absolutem. Podczas dostrajania mojej bazy danych w celu poprawy wydajności ciągle napotykam na tę sytuację, która wydaje mi się logicznie sprzeczna z tą regułą i nigdzie nie mogę znaleźć nikogo, …

1
Monumentalna różnica w czasie wykonywania między zapytaniami przy użyciu podpowiedzi RECOMPILE
Mam dwa prawie identyczne zapytania uruchomione w tej samej instancji SQL Server 2005: Pierwszym z nich jest oryginalne SELECTzapytanie wygenerowane przez LINQ (wiem, wiem ... nie jestem programistą aplikacji, tylko DBA :). Drugi jest dokładnie taki sam jak pierwszy, dodany OPTION (RECOMPILE)na końcu. Nic innego się nie zmieniło. Pierwszy trwa …

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.