Struktura bazy danych, która może poprawić szybkość zapytań kosztem miejsca na dysku oraz wolniejsze wstawianie / aktualizacje. Przechowuje kopię jednej lub więcej posortowanych kolumn, ale dane są uporządkowane inaczej, aby umożliwić szybszy dostęp.
Obecnie mamy istniejącą bazę danych i aplikację, która jest w pełni funkcjonalna. W tym momencie nie mam możliwości zmiany architektury. Dzisiaj każda tabela w bazie danych ma pole „IsDeleted” NOT NULL BIT z domyślną wartością „0”. Gdy aplikacja „usuwa” dane, po prostu aktualizuje flagę IsDeleted na 1. Trudno mi zrozumieć, …
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, …
Mamy bardzo dużą bazę danych z setkami nieużywanych indeksów zgodnie ze statystykami DMV, które gromadzą się od ostatniego restartu serwera w lipcu. Jeden z naszych DBA wydał następujące przestrogi, które nie mają dla mnie sensu: Przed upuszczeniem indeksu musimy upewnić się, czy nie wymusza on ograniczenia wyjątkowości, ponieważ optymalizator kwerend …
Nasz serwer SQL działa w sieci SAN. Zawiera dziesiątki baz danych OLTP, niektóre z kilkoma tabelami zawierającymi ponad 1 milion rekordów. Co tydzień uruchamiamy skrypty konserwacji indeksu Oli Hallengren i za każdym razem działają one przez kilka godzin. W oparciu o próg fragmentacji skrypt reorganizuje lub ponownie indeksuje indeks. Zauważyliśmy, …
Mam następujące definicje tabel i indeksów: CREATE TABLE munkalap ( munkalap_id serial PRIMARY KEY, ... ); CREATE TABLE munkalap_lepes ( munkalap_lepes_id serial PRIMARY KEY, munkalap_id integer REFERENCES munkalap (munkalap_id), ... ); CREATE INDEX idx_munkalap_lepes_munkalap_id ON munkalap_lepes (munkalap_id); Dlaczego żaden z indeksów na munkalap_id nie jest używany w następującym zapytaniu? EXPLAIN …
Kontekst To pytanie dotyczy szczegółów implementacji indeksów niskiego poziomu w systemach baz danych SQL i NoSQL. Rzeczywista struktura indeksu (drzewo B +, skrót, SSTable itp.) Jest nieistotna, ponieważ pytanie dotyczy konkretnie kluczy przechowywanych w jednym węźle dowolnej z tych implementacji. tło W bazach danych SQL (np. MySQL) i NoSQL (CouchDB, …
Słyszałem, że przechowywanie indeksów na innej grupie plików i dysku zwiększa wydajność w bazie danych, ponieważ dysk nie musi przechodzić między indeksem a danymi, do których odwołuje się indeks. Słyszałem również, że to mit. Kiedy wskazane jest przechowywanie indeksów nieklastrowanych na osobnej grupie plików i dysku? Jakie dowody perfmon / …
Przedmówię więc, mówiąc, że nie mam całkowitej kontroli nad moim projektem db, więc wielu aspektów obecnego systemu nie można zmienić na potrzeby tego scenariusza. Komentarze na temat tego, w jaki sposób powinniśmy przemyśleć aspekty projektu, są prawdopodobnie poprawne, ale nie są pomocne :) Mam bardzo duży stół o szerokości około …
Buduję aplikację dla wielu dzierżawców (pojedyncza baza danych, pojedynczy schemat) przy użyciu interfejsu API sieci Web ASP, Entity Framework i bazy danych SQL Server / Azure. Ta aplikacja będzie używana przez 1000-5000 klientów. Wszystkie tabele będą miały pole TenantId(Guid / UNIQUEIDENTIFIER). Obecnie używam klucza podstawowego z jednym polem, którym jest …
Mam tabelę w produkcyjnej bazie danych o wielkości 525 GB, z czego 383 GB jest nieużywane: Chciałbym odzyskać trochę tego miejsca, ale zanim zacznę działać z produkcyjną bazą danych, testuję niektóre strategie na identycznej tabeli w testowej bazie danych z mniejszą ilością danych. W tej tabeli występuje podobny problem: Niektóre …
Jeśli uruchomisz zapytanie z „Uwzględnij rzeczywisty plan wykonania”, plan zasugeruje również brakujące indeksy. Szczegóły indeksu znajdują się wewnątrz MissingIndexesznacznika w pliku XML. Czy zdarza się sytuacja, gdy plan zawiera wiele propozycji indeksu? Próbowałem różnych zapytań SQL, ale nie mogłem znaleźć żadnego zapytania, które generuje dwa lub więcej brakujących indeksów.
Mam tabelę o nazwie Address, która ma utrwaloną kolumnę obliczeniową o nazwie Hashkey. Kolumna jest deterministyczna, ale nieprecyzyjna. Ma unikalny indeks, którego nie można zobaczyć. Jeśli uruchomię to zapytanie, zwracam klucz podstawowy: SELECT @ADDRESSID= ISNULL(AddressId,0) FROM dbo.[Address] WHERE HashKey = @HashKey Dostaję ten plan: Jeśli wymuszę indeks, otrzymam ten jeszcze …
Próbuję ustalić, które indeksy mają być używane w zapytaniu SQL z WHEREwarunkiem, a GROUP BYktóry działa obecnie bardzo wolno. Moje zapytanie: SELECT group_id FROM counter WHERE ts between timestamp '2014-03-02 00:00:00.0' and timestamp '2014-03-05 12:00:00.0' GROUP BY group_id Tabela ma obecnie 32 000 000 wierszy. Czas wykonania zapytania znacznie wzrasta, …
W SO ktoś ostatnio zapytał: Dlaczego ORDER BY nie korzysta z indeksu? Sytuacja dotyczyła prostej tabeli InnoDB w MySQL zawierającej trzy kolumny i 10 000 wierszy. Jedna z kolumn, liczba całkowita, została zindeksowana, a OP próbował odzyskać całą swoją tabelę posortowaną według tej kolumny: SELECT * FROM person ORDER BY …
Moje pytanie dotyczy użycia indeksów. Czy powinienem rozpocząć indeksowanie od samego początku, czy gdy pojawi się problem z wydajnością? Możemy również utworzyć indeks tymczasowy podczas wykonywania zapytania. Jakie są zalety i wady takich technik?
Używamy plików cookie i innych technologii śledzenia w celu poprawy komfortu przeglądania naszej witryny, aby wyświetlać spersonalizowane treści i ukierunkowane reklamy, analizować ruch w naszej witrynie, i zrozumieć, skąd pochodzą nasi goście.
Kontynuując, wyrażasz zgodę na korzystanie z plików cookie i innych technologii śledzenia oraz potwierdzasz, że masz co najmniej 16 lat lub zgodę rodzica lub opiekuna.