Tłumaczenie - Eurotronic

advertisement
1.
Jeśli to możliwe, nie używaj kursora. Kursory są z reguły mniej wydajne i potrzebują więcej
zasobów w porównaniu rozwiązaniami opartymi na klauzuli SELECT.
2. Zawsze zamykaj kursor, kiedy nie potrzebujesz już jego zbioru wynikowego. Służy do tego
instrukcja CLOSE. Instrukcja ta zwalnia zbiór wynikowy kursora i blokady na jego wierszach.
Powiązanie ze strukturą danych pozostaje aktywne i można ponownie otworzyć kursor instrukcją
OPEN.
3. Zawsze zwalniaj kursor, kiedy go już nie potrzebujesz. Służy do tego instrukcja DEALLOCATE.
Instrukcja ta zwalnia zasoby kursora, strukturę danych i wszystkie blokady związane z kursorem.
4. Ograniczaj do minimum liczbę wierszy i kolumn kursora. W klauzuli SELECT definiującej
kursor wybieraj tylko te kolumny i wiersze, których rzeczywiście potrzebujesz. W większości
przypadków zwiększy to wydajność kursora i zmniejszy ogólne koszty (SQL Server overhead).
5. Jeśli to możliwe, używaj kursorów z opcją READ ONLY. Użycie opcji READ ONLY nie pozwala
na aktualizowanie powiązanego z kursorem zbioru wynikowego, ale dzięki temu nie ma na nim
blokad.
6. Jeśli to możliwe, unikaj używania opcji INSENSITIVE, STATIC, KEYSET. Kursory o tych typach
są z reguły bardziej kosztowne, bo powodują utworzenie tabeli tymczasowej w bazie TEMPDB, co
może skutkować spadkiem wydajności.
7. Jeśli to możliwe, używaj opcji FAST_FORWARD. Ten typ kursorów produkuje najmniej kosztów
ogólnych w SQL Server, bo jest tylko do odczytu i może być przewijany tylko w jednym kierunku.
Trzeba pamiętać, że przy tej opcji to optymizator wybiera, czy kursor będzie statyczny, czy
dynamiczny.
8. Jeśli to możliwe, w edytowalnych kursorach używaj opcji FORWARD_ONLY. Ograniczenie
kierunku pobierania powoduje mniejsze zużycie zasobów. Zawsze używaj tej opcji, jeśli
do pobierania danych używasz tylko FETCH NEXT, a nie użyłeś opcji FAST_FORWARD.
Download