Dzisiaj skupimy się na indeksach MS SQL DBMS i ich wewnętrznej strukturze. Spróbuję opowiedzieć o indeksach zarówno z punktu widzenia DBMS, jak iz punktu widzenia 1C 8.3.
Indeksy - zestaw linków uporządkowanych według konkretnych kolumn, utworzonych w celu optymalizacji wydajności DBMS MS SQL.
Wskaźniki 1C
W systemie 1C indeksy są tworzone na dwa sposoby - jawnie i pośrednio.
Tworzenie indeksów domyślnie:
Platforma tworzy indeksy kluczy danych znanych z góry dla każdego obiektu metadanych (link, kod, nazwa, wymiary itp.)
Tworzenie indeksów jest wyraźnie możliwe na trzy sposoby:
- Ustaw flagę „Indeks” w polu (rekwizyty / pomiary). Opcja „Indeks z wew. zamawianie ”dodaje pole„ Kod ”lub„ Nazwa ”do indeksu (głównie dla dynamiczne listy ).
- Dodawanie pola do „ Kryteria wyboru „
- Określanie indeksowanego pola w zapytaniu przy użyciu „ INDEX ON „
Indeksy w DBMS Microsoft SQL
Indeksy w DBMS MS SQL to strony z danymi o wielkości 8 KB każda. Pomimo faktu, że indeksy są zaprojektowane w celu poprawy wydajności DBMS, mają pewne wady - zajmują miejsce na dysku i spowalniają pracę DBMS do pisania ciągów.
Typy indeksów w DBMS MS SQL:
- Indeksy nieklastrowane - takie indeksy nie zmieniają kolejności tabel, a jedynie organizują linki.
- Indeksy klastrowane są potrzebne do zbudowania tabeli zgodnie z indeksem. Dane są porządkowane, na przykład alfabetycznie. Nieprawidłowy dla często zmieniających się kolumn, ponieważ DBMS stale fizycznie odbudowuje tabelę w tym indeksie.
- Unikalne indeksy są rodzajem „dodatku” dla indeksów klastrów i klastrów. Taki indeks jest unikalny w kluczowych polach.
Typy kluczy w DBMS:
- Klucz podstawowy (podstawowy) - zestaw kolumn, które jednoznacznie charakteryzują wiersz.
- Klucz obcy (obcy) - pole tabeli przechowujące wartość klucza podstawowego w celu zorganizowania połączenia między tabelami. 1C nie używa tego typu kluczy.
Ważne niuanse korzystania z indeksów
Długość klucza indeksu w głównym DBMS (wszystkie oprócz wersji pliku) - nie więcej niż 900 bajtów i 16 różnych pól.
Rozpocznij defragmentację indeksów częściej na poziomie MS SQL DBMS: jeśli indeksy są często używane, może wystąpić efekt fragmentacji, poziom fragmentacji wyższy niż 25% nie może być dozwolony.
Brak indeksów może prowadzić do pełnego skanowania tabeli, co z kolei doprowadzi do nadmiernego blokowania.
Nie jest jednak konieczne dołączanie indeksowania do małych zestawów danych (na przykład podręcznika organizacji) - konstrukcja indeksu może prowadzić do odwrotnego efektu, prędkość będzie się zmniejszać.