Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Dlaczego używanie kursorów w SQL Server jest uważane za złą praktykę?

Ponieważ kursory zajmują pamięć i tworzą blokady.

To, co tak naprawdę robisz, to próba wymuszenia na technologii opartej na zestawach funkcjonalności nie opartej na zestawach. I uczciwie muszę zaznaczyć, że kursory robią mają zastosowanie, ale są mile widziane, ponieważ wielu ludzi, którzy nie są przyzwyczajeni do korzystania z rozwiązań opartych na zbiorach, używa kursorów zamiast szukać rozwiązania opartego na zbiorach.

Ale kiedy otwierasz kursor, w zasadzie ładujesz te wiersze do pamięci i blokujesz je, tworząc potencjalne bloki. Następnie, podczas przechodzenia przez kursor, wprowadzasz zmiany w innych tabelach i nadal utrzymujesz otwartą całą pamięć i blokady kursora.

Wszystko to może potencjalnie powodować problemy z wydajnością dla innych użytkowników.

Tak więc, co do zasady, kursory są mile widziane. Zwłaszcza jeśli jest to pierwsze rozwiązanie problemu.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL Server Konwertuj Varchar na Datetime

  2. Pobieranie wartości zwracanej z procedury składowanej w C#

  3. Czy należy wybrać typy danych MONEY lub DECIMAL(x,y) w SQL Server?

  4. Wersja zaplecza nie jest obsługiwana do projektowania diagramów lub tabel bazy danych

  5. Jak usunąć kolumnę z ograniczeniem w SQL Server