sql >> Databáze >  >> RDS >> Sqlserver

Proč je používání kurzorů na serveru SQL považováno za špatný postup?

Protože kurzory zabírají paměť a vytvářejí zámky.

Ve skutečnosti se pokoušíte vnutit technologii založenou na množinách do funkcí, které nejsou založeny na množinách. A ve vší spravedlnosti bych měl zdůraznit, že kurzory dělají mají využití, ale jsou odsuzováni, protože mnoho lidí, kteří nejsou zvyklí používat řešení založená na množinách, místo vymýšlení řešení založeného na množinách používají kurzory.

Ale když otevřete kurzor, v podstatě načítáte tyto řádky do paměti a zamykáte je, čímž vytváříte potenciální bloky. Poté, jak procházíte kurzorem, provádíte změny v jiných tabulkách a stále necháváte veškerou paměť a zámky kurzoru otevřené.

To vše může ostatním uživatelům způsobit problémy s výkonem.

Takže, jako obecné pravidlo, kurzory jsou odsuzovány. Zvláště pokud je to první řešení, ke kterému se při řešení problému dospělo.



  1. Java:Vložte více řádků do MySQL pomocí PreparedStatement

  2. Problém s nasazením sestavy SSRS 2014

  3. Funkce SUM() na serveru SQL Server

  4. 2017 @ Somenines:Oslava příběhů našich zákazníků