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

Co dělá sp_reset_connection?

Vrstvy rozhraní API pro přístup k datům jako ODBC, OLE-DB a SqlClient volají (interní) uloženou proceduru sp_reset_connection při opětovném použití připojení z fondu připojení. Dělá to, aby resetoval stav připojení, než bude znovu použito.

Nezdá se, že by existovala oficiální dokumentace o tom, co se resetovalo, ale zde je neoficiální seznam.

sp_reset_connection obnoví následující aspekty připojení:

  • Resetuje všechny chybové stavy a čísla (např. @@chyba)
  • Zastaví všechny EC (kontexty provádění), které jsou podřízenými vlákny nadřazeného EC provádějícího paralelní dotaz
  • Počká na všechny nevyřízené I/O operace, které jsou nevyřízené
  • Připojením uvolní všechny zadržené vyrovnávací paměti na serveru
  • Odemkne všechny prostředky vyrovnávací paměti, které připojení používá
  • Uvolní veškerou paměť alokovanou ve vlastnictví připojení
  • Vymaže všechny pracovní nebo dočasné tabulky, které byly vytvořeny připojením
  • Zabije všechny globální kurzory vlastněné připojením
  • Uzavře všechny otevřené popisovače SQL-XML, které jsou otevřené
  • Odstraní všechny otevřené pracovní tabulky související s SQL-XML
  • Uzavře všechny systémové tabulky
  • Uzavře všechny uživatelské tabulky
  • Odstraní všechny dočasné objekty
  • Přeruší otevřené transakce
  • Při zařazení do distribuované transakce dojde k chybě
  • Sníží počet odkazů pro uživatele v aktuální databázi, kteří uvolní zámek sdílené databáze
  • Uvolní získané zámky
  • Uvolní všechny úchyty, které mohly být získány
  • Všechny možnosti SET se resetují na výchozí hodnoty
  • Obnoví hodnotu @@rowcount
  • Obnoví se @@hodnota identity
  • Resetuje všechny možnosti trasování na úrovni relace pomocí dbcc traceon()

sp_reset_connection NEBUDE resetován:

  • Kontext zabezpečení, což je důvod, proč sdružování připojení odpovídá připojení na základě přesného připojovacího řetězce
  • Pokud jste roli aplikace zadali pomocí sp_setapprole, protože role aplikace nelze vrátit zpět
  • Úroveň izolace transakcí


  1. MySQL SELECT WHERE datum a čas odpovídá dni (a nemusí nutně času)

  2. Existuje nějaký způsob, jak zkontrolovat výkon indexování mysql

  3. Výchozí databáze s názvem postgres na serveru Postgresql

  4. Jak zacházet s jednou citací v Oracle SQL