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

Měl bych při čtení záznamů používat transakce SQL?

Pokud se dotazujete na všechny záznamy v jediném dotazu a stahujete je zpět najednou, není potřeba. Vše je zabaleno do implicitní transakce. To znamená, že i když se vám vrátí milion záznamů a i když jiné procesy záznamy změní, uvidíte, jak všech milion záznamů vypadal ve stejný okamžik.

Jediné případy, kdy byste skutečně potřebovali transakci (a často i konkrétní nápovědu k uzamčení) v procesu pouze pro čtení, jsou:
- Čtete záznamy „kus-moučka“ a nepotřebujete nic dalšího ke změně hodnot, zatímco přesto opakovat. [Například připojená sada záznamů v ADO, přes kterou poté kurzorem procházíte.]
- Přečtete nějaká data, provedete nějaké výpočty a pak přečtete některá související data, ale za předpokladu, že se mezitím nic nezměnilo.


Stručně řečeno, transakce potřebujete, když chcete, aby jiné procesy přestaly zasahovat do vašich dat mezi příkazy SQL.



  1. Chyba R DBI ODBC:nanodbc/nanodbc.cpp:3110:07009:[Microsoft][Ovladač ODBC 13 pro SQL Server]Neplatný index deskriptoru

  2. Přístup k WordPressu

  3. Použití INNER JOIN ke kombinaci tabulek SQL Server a jejich zobrazení ve webových formulářích ASP.NET

  4. Dotaz s parametry IN oddělenými čárkami v PLSQL