Pytania otagowane jako database-internals

Pytania techniczne dotyczące wewnętrznego działania silnika bazy danych.

4
Jaka jest maksymalna liczba zmiennych lokalnych, które mogą brać udział w operacji SET?
Mam procedurę składowaną, która zawiera logikę biznesową. Wewnątrz mam około 1609 zmiennych (nie pytaj mnie dlaczego, tak działa silnik). Próbuję SETzmiennej do połączonej wartości wszystkich innych zmiennych. W rezultacie podczas tworzenia pojawia się błąd: Msg 8631, poziom 17, stan 1, procedura XXX, wiersz RRRR Błąd wewnętrzny: Osiągnięto limit stosu serwera. …

2
SUMA DATALENGTH niezgodnych z rozmiarem tabeli z sys.allocation_units
Miałem wrażenie, że gdybym zsumował DATALENGTH()wszystkie pola dla wszystkich rekordów w tabeli, uzyskałbym całkowity rozmiar tabeli. Czy się mylę? SELECT SUM(DATALENGTH(Field1)) + SUM(DATALENGTH(Field2)) + SUM(DATALENGTH(Field3)) TotalSizeInBytes FROM SomeTable WHERE X, Y, and Z are true Użyłem tego zapytania poniżej (które dostałem z Internetu, aby uzyskać rozmiary tabel, tylko indeksy klastrowe, …

1
High PAGELATCH_ * i WRITELOG czeka. Czy są spokrewnieni?
Obserwujemy bardzo wysokie typy oczekiwania PAGELATCH_EX i PAGELATCH_SH oraz wysokie oczekiwania WRITELOG. Zdiagnozowałem zapytanie powodujące, że PAGELATCH czeka i mogę je wyeliminować, zmniejszając szybkość wstawiania do zajętego klucza podstawowego klastrowanego zdefiniowanego wartością TOŻSAMOŚĆ. Rozumiem, że to zjawisko jest znane jako rywalizacja o zatrzask wstawiania ostatniej strony. Jednak moje pytanie brzmi: …

2
Dlaczego wyłączenie indeksu klastrowego powoduje, że tabela jest niedostępna?
Gdy indeks jest wyłączony, definicja pozostaje w katalogu systemowym, ale nie jest już używana. SQL Server nie utrzymuje indeksu (ponieważ dane w tabeli się zmieniają), a indeksu nie można użyć do zaspokojenia zapytań. Jeśli indeks klastrowany jest wyłączony, cała tabela staje się niedostępna. Dlaczego nie można uzyskać dostępu do danych …


3
W jaki sposób SQL Server obsługuje dane dla zapytania, w którym nie ma wystarczającej ilości miejsca w buforze pamięci podręcznej?
Moje pytanie brzmi: w jaki sposób SQL Server obsługuje zapytanie, które wymaga pobrania większej ilości danych do pamięci podręcznej bufora niż dostępna jest przestrzeń? Ta kwerenda zawierałaby wiele złączeń, więc zestaw wyników nie istnieje w tym formacie już na dysku i trzeba by skompilować wyniki. Ale nawet po kompilacji nadal …

1
Uzyskaj minimalne rejestrowanie podczas ładowania danych do tabel tymczasowych
Nawet po przeczytaniu Przewodnika wydajności ładowania danych nadal nie jestem pewien, czy konieczne jest dodanie podpowiedzi do tabeli TABLOCK do pustej tabeli tymczasowej, zdefiniowanej za pomocą indeksu klastrowego, aby uzyskać minimalne rejestrowanie. Oczywiście tabela temp jest tworzona w TempDB, który działa w trybie odzyskiwania SIMPLE, więc pomyślałbym, że jest idealnym …

1
Eksmisja planu pomiarowego
Mamy SQL Server 2016 SP1 z maksymalną pamięcią ustawioną na 24 GB. Ten serwer ma dużą liczbę kompilacji, tylko 10% tych kompilacji pochodzi z zapytań Ad-Hoc. Nowo skompilowane plany powinny być przechowywane w pamięci podręcznej planu, ale wielkość pamięci podręcznej planu nie rośnie (około 3,72 GB). Podejrzewam, że istnieje lokalna …

1
Indeks Szukaj kosztów operatora
Dla przykładowej bazy danych AdventureWorks zapytanie poniżej: SELECT P.ProductID, CA.TransactionID FROM Production.Product AS P CROSS APPLY ( SELECT TOP (1) TH.TransactionID FROM Production.TransactionHistory AS TH WHERE TH.ProductID = P.ProductID ORDER BY TH.TransactionID DESC ) AS CA; Planu pokazuje wykonanie Szacowany koszt operatora od 0.0850383 (93%) dla indeksu Szukajcie : Koszt …
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.