Udostępnij za pośrednictwem


Wybieranie typu kursora — informacje

Wybieranie typu kursor zależy od wielu zmiennych, włączając:

  • Rozmiar zestaw wyników.

  • Udział procentowy danych prawdopodobnie konieczny.

  • Wydajność kursor Otwórz.

  • Potrzebę operacji kursor, takich jak przewijanie lub pozycjonowane aktualizacji.

  • Poziom widoczności do modyfikacji danych wprowadzonych przez innych użytkowników.

Ustawienia domyślne są dobrze w wyniku małej ustawić, jeśli aktualizacja nie jest wykonywane, ale kursor dynamiczny jest preferowana dla duży zestaw wyników, w którym użytkownik jest prawdopodobne znaleźć odpowiedzi przed pobraniem wielu wierszy.

If the data that is to be retrieved will be consumed all at once, and there is no need for positioned updates or scrolling, default result sets are recommended.SQL Server removes the restriction that prevented having more than one outstanding default result set, when using Multiple Active Result Sets (MARS).

Zasady wybierania typu kursora

Niektóre proste reguły przestrzeganie wybierając typ kursor są:

  • Użyj domyślnej wynik Ustawia, gdy to możliwe.W razie potrzeby przewijania może nadal być bardziej efektywne pamięci podręcznej małych zestaw wyników klient i przewiń pamięci podręcznej zamiast pytać serwera do zaimplementowania kursor.

  • Użyj ustawień domyślnych, gdy pobieranie cały zestaw wyników do klient, gdy produkujących raportu.Domyślne zestawy wyników są to najszybszy sposób przekazywania danych do klient.

  • Nie można użyć domyślnych zestawów wyników, jeśli aplikacja używa pozycjonowane aktualizacje.

  • Domyślne zestawy wyników musi być używany dla każdego Transact-SQL instrukcja lub partia Transact-SQL sprawozdań, które będą generować wiele zestawów wyników.

  • Dynamiczne kursory otwierają się szybciej niż Kursory statyczne lub zależne od zestawu kluczy.Tabele wewnętrznego tymczasowej pracy muszą być budowane są otwarte kursory statyczne i napędzane zestawu kluczy, ale nie są wymagane dla dynamiczne kursory.

  • W sprzężeniu napędzane zestawu kluczy i statycznych kursorów można szybciej niż dynamiczne kursory.

  • Kursory statyczne lub zależne od zestawu kluczy muszą być używane, jeśli chcesz zrobić pobiera bezwzględne.

  • Kursory statyczne i napędzane zestawu kluczy zwiększenie wykorzystania tempdb.Kursory statyczne serwera kompilacji całego kursor tempdb; kursory zestawu kluczy budowania zestawu kluczy tempdb.

  • Jeśli kursor musi pozostać otwarte za pomocą operacji wycofywania, użyj synchroniczne kursor statyczny i zestaw CURSOR_CLOSE_ON_COMMIT do OFF.

Każde wywołanie funkcja API pobrania lub metoda powoduje roundtrip do serwera podczas korzystania z serwera kursory.Aplikacje należy zminimalizować te natężenie ruchu przy użyciu blok kursory dostatecznie dużą liczbę wierszy zwracanych w każdego pobrania.

Zobacz także

Koncepcje