Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Защо се счита за лоша практика да се използват курсори в SQL Server?

Защото курсорите заемат памет и създават ключалки.

Това, което наистина правите, е да се опитвате да принудите базираната на набори технология към не-базирана функционалност. И, честно казано, трябва да отбележа, че курсорите да имат полза, но са недоволни, защото много хора, които не са свикнали да използват базирани на набор решения, използват курсори, вместо да измислят решението, базирано на набор.

Но когато отворите курсор, вие основно зареждате тези редове в паметта и ги заключвате, създавайки потенциални блокове. След това, докато преминавате през курсора, правите промени в други таблици и продължавате да държите цялата памет и ключалките на курсора отворени.

Всичко това може да причини проблеми с производителността на други потребители.

Така че, като общо правило, курсорите не се гледат намръщено. Особено ако това е първото решение, до което се стига при решаването на проблем.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да деактивирате CDC върху набор от таблици ИЛИ да деактивирате за всички таблици в база данни в SQL Server - урок за SQL Server

  2. Десетични стойности в SQL за разделяне на резултатите

  3. SQL Server:Примери за PIVOTing String данни

  4. Относно командата GO в SQL Server

  5. LOG10() Примери в SQL Server