Utworzono skrypt, aby znaleźć selektywność każdej kolumny dla wszystkich tabel. W niektórych tabelach z mniej niż 100 wierszy selektywność kolumny wynosi więcej niż 50%. Gdzie Selektywność = Wyraźne wartości/Całkowita liczba wierszy. Czy te kolumny kwalifikują się do indeksu? Czy możesz mi podać minimalne wymaganie dotyczące liczby wierszy do utworzenia indeksu?Jaka jest minimalna liczba wierszy wymaganych do utworzenia indeksu?
Odpowiedz
Można indeks na dowolnej kolumny - pytanie brzmi, czy to ma jakiś sens i czy wskaźnik zostaną wykorzystane ....
Zwykle selektywność mniej niż 1-5% może działać - mniejszy ten procent, tym lepiej. Najlepsze są pojedyncze wartości z dużej populacji, np. jeden identyfikator klienta na setki tysięcy - z pewnością te wskaźniki zostaną wykorzystane.
Rzeczy takie jak płeć (tylko 2 wartości) lub inne rzeczy, które mają tylko ograniczoną liczbę możliwych wartości, zazwyczaj nie działają dobrze w indeksie. Przynajmniej na własną rękę - te kolumny mogą być w porządku do włączenia do innego indeksu jako druga lub trzecia kolumna.
Ale naprawdę, jedynym sposobem, aby dowiedzieć się, czy indeks ma sens jest
- mierzyć zapytań przed
- utworzyć indeks
- prowadzony zapytania ponownie sprawdzić swoje plany wykonania , zmierz ich czasy:
Nie ma złotej reguły określającej, kiedy indeks zostanie użyty (lub zignorowany) - zbyt wiele zmiennych wpływa na tę decyzję.
jakiegoś eksperta porady, jak radzić sobie z indeksów i jak dowiedzieć się, jakie indeksy nie może przyzwyczaić, a kiedy ma to sens, aby utworzyć indeks, patrz Kimberly Tripp blogu posty:
nie jestem pewien o sQL-serwer, ale większość DBMS nie używać indeksu dla pobierania i f może pobrać wszystkie wiersze tabeli w jednym we/wy. Zobaczysz to na objaśnieniach PLANU, niektóre tabele są zawsze skanowane w tabelach.
IMHO, każda tabela z mniej niż 5000 wierszy nie jest warta analizowania pod względem liczności, jeśli DBMS działa na serwerze.
Większość DBMS korzysta z pamięci podręcznej dla danych i kodu (procedura składowana, plan wykonania itp.). W SQL Server myślę, że to nazywa dane i Procedura cache i Oracle, nazywa cache i SGA. Dane tabeli i/lub indeks mogą znajdować się w pamięci podręcznej.
Mały stolik, do którego często wchodzimy, najprawdopodobniej zmieści się w pamięci podręcznej. Ale tabelę można wyeksmitować z pamięci podręcznej, powiedzmy, jeśli zapytanie ładuje nowe dane z dysku. Istnieją opcje wskazujące, że tabela ma być na stałe w pamięci podręcznej (Zobacz PINTABLE).To może lepsza strategia, która używa indeksu, jeśli twój stół jest bardzo mały (co jest twoim przypadkiem). Dodanie indeksu (który zawsze byłby zawsze w pamięci podręcznej) mogłoby pomóc w dalszej pracy, ale nie wiem, jaki byłby zysk.
Dużą różnicą w wydajności jest dostęp do dysku w porównaniu do dostępu do pamięci. Celem indeksu jest zmniejszenie ilości danych do odczytania z dysku, ale jeśli jest już w pamięci, zysk jest prawdopodobnie niewielki.
- 1. Jaka jest minimalna wartość 32-bitowej liczby całkowitej ze znakiem?
- 2. Minimalna liczba obserwacji podczas wykonywania Losowego lasu
- 3. Jaka jest minimalna kara za wydajność komunikacji Cross AppDomain?
- 4. Poprawność i logika algorytmu: minimalna liczba kroków do jednego
- 5. Przygotowane instrukcje - liczba wierszy
- 6. JTable Przewijanie do określonego indeksu wierszy
- 7. Liczba wierszy w RDD
- 8. liczba liczba wierszy w szablonach kolby
- 9. Jaka jest maksymalna liczba ponumerowanych wyrażeń regularnych?
- 10. Liczba wierszy SQL w tabeli
- 11. Jaka jest maksymalna liczba plików na słoik?
- 12. SQL DELETE - Maksymalna liczba wierszy
- 13. Liczba wierszy SQLBulkCopy po ukończeniu
- 14. Liczba wierszy w arkuszu roboczym
- 15. Liczba wierszy w każdej grupie
- 16. Liczba wierszy w tablicy numpy
- 17. Liczba wierszy w pliku CSV
- 18. Widoczna liczba wierszy obiektu TextBlock
- 19. Jaka jest maksymalna liczba wierszy, które może przechowywać pojedyncza tabela programu SQL Server?
- 20. R programowania w „dplyr” do wybierania wierszy i powrót indeksu wierszy znaleziono
- 21. Jaka jest minimalna konfiguracja usługi w pełni przypisanej do REST zbudowanej na Spring 3 (m3)?
- 22. Jaka minimalna wersja Androida jest wymagana do aplikacji mowy na tekst
- 23. MYSQL - liczba wierszy w każdej tabeli
- 24. Maksymalna liczba wierszy w tabeli sqlite?
- 25. Liczba wierszy w relacji wiele do wielu (SQLAlchemy)
- 26. Liczba wierszy rodziny kolumn w Cassandra
- 27. Liczba wierszy, w której istnieją dane
- 28. Liczba wierszy hibernacji z pewnymi kryteriami:
- 29. Liczba wierszy Matlaba w pliku Excel
- 30. Liczba grupy według wierszy w hibernacji kryteriów
Mam tabelę z 3 wartościami intergerów i wszystkie są dostinct. Selektywność tego jest większa niż 95%. A ta tabela jest najczęściej używana tylko z instrukcją select. Czy możliwe jest stworzenie indeksu na ten temat? – Paresh
95% selektywne znaczenie? Zazwyczaj potrzebujesz bardzo niskiej selektywności - chcesz, aby pojedyncza wartość (ID = 55) tylko wybierała minimalną liczbę wierszy. Jeśli twoja selektywność w tym scenariuszu (procent, ile wierszy z sumy zostanie wybranych dla danej wartości twojego pola) jest mniejsza niż 5% lub nawet niższa niż 1%, to z pewnością ma sens indeksowanie. –
"Rzeczy takie jak płeć (tylko 2 wartości)" teraz, gdy jest 2018, ta część twojej odpowiedzi jest nieaktualna. Płeć powinna być od teraz VARCHAR (255). Osobiście identyfikuję się jako śmigłowiec szturmowy Apache. –