każdy klient / użytkownik zawsze chce szybkiej odpowiedzi na proces pobierania danych. Musimy więc zaprojektować dobrą bazę danych, która zapewnia najlepszą wydajność podczas manipulacji danymi, co skutkuje najlepszą wydajnością aplikacji. Jednak nie ma prostego sposobu na zdefiniowanie najlepszej wydajności, ale możemy wybrać wiele sposobów na poprawę wydajności zapytań SQL, które mieszczą się w różnych kategoriach, takich jak tworzenie indeksów, użycie połączeń i przepisanie podquery do użycia JOIN, itp.
jako programista wiemy, że każde zapytanie SQL może być napisane na wiele sposobów, ale powinniśmy postępować zgodnie z najlepszymi praktykami / technikami, aby uzyskać lepszą wydajność zapytań. Podkreślam niektóre z nich poniżej:
1. Użyj EXISTS zamiast IN, aby sprawdzić istnienie danych.
2. Unikaj * w instrukcji SELECT. Podaj nazwę kolumn, których potrzebujesz.
3. Wybierz odpowiedni typ danych. Np. do przechowywania łańcuchów należy użyć varchar zamiast tekstowego typu danych. Użyj tekstowego typu danych, gdy chcesz przechowywać duże dane (ponad 8000 znaków).
4. Unikaj nchar i nvarchar, jeśli to możliwe, ponieważ oba typy danych zajmują tylko podwójną pamięć jako char i varchar.
5. Unikaj NULL w polu o stałej długości. W przypadku wymogu null, użyj pola o zmiennej długości (varchar), które zajmuje mniej miejsca na NULL.
6. Unikaj Klauzuli. Posiadanie klauzuli jest wymagane, jeśli chcesz dalej filtrować wynik agregacji.
7. Tworzenie indeksów klastrowych i Nieklastrowych.
8. Zachowaj mały indeks klastrowy, ponieważ pola używane w indeksie klastrowym mogą być również używane w indeksie nieklastrowym.
9. Najbardziej selektywne kolumny powinny być umieszczone najbardziej po lewej stronie w kluczu indeksu nieklastrowego.
10. Upuść nieużywane indeksy.
11. Lepiej tworzyć indeksy na kolumnach, które mają wartości całkowite zamiast znaków. Wartości całkowite zużywają mniej narzutu niż wartości znakowe.
12. Użyj łączy zamiast zapytań podrzędnych.
13. Użyj wyrażeń WHERE, aby ograniczyć rozmiar tabel wyników utworzonych za pomocą połączeń.
14. Użyj TABLOCKX podczas wstawiania do tabeli i TABLOCK podczas scalania.
15. Użyj Z (NOLOCK) podczas odpytywania danych z dowolnej tabeli.
16. Użyj SET NOCOUNT ON i użyj TRY-CATCH, aby uniknąć impasu.
17. Unikaj kursorów, ponieważ Kursory działają bardzo wolno.
18. Użyj zmiennej Table zamiast tabeli Temp. Korzystanie z tabel Temp wymaga interakcji z bazą danych TempDb, która jest zadaniem czasochłonnym.
19. Użyj UNION ALL zamiast UNION, jeśli to możliwe.
20. Użyj nazwy schematu przed nazwą obiektów SQL.
21. Stosuj procedurę składowaną dla często używanych danych i bardziej złożonych zapytań.
22. Zachowaj transakcję tak małą, jak to możliwe, ponieważ transakcja blokuje dane tabel przetwarzania i może powodować impasy.
23. Unikaj prefiksu ” sp_ ” z nazwą procedury składowanej zdefiniowanej przez użytkownika, ponieważ SQL server najpierw przeszukuje procedurę zdefiniowaną przez użytkownika w głównej bazie danych, a następnie w bieżącej bazie danych sesji.
24. Unikaj użycia Nieporelowanego skalarnego zapytania podrzędnego. Użyj tego zapytania jako oddzielnego zapytania zamiast części głównego zapytania i przechowuj dane wyjściowe w zmiennej, do której można się odwołać w głównym zapytaniu lub późniejszej części partii.
25. Unikaj funkcji o wartości wielu instrukcji (TVFs). Multi-statement TVF są bardziej kosztowne niż inline TVF.
Szczęśliwej Nauki!