Widziałem kilka osób dzwoniących SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
przed przeczytaniem DMV systemu. Czy jest jakiś powód, aby to robić, zakładając, że nie miksujesz połączeń do DMV i tabel w tej samej transakcji?
sql-server
dmv
James L.
źródło
źródło
sys.dm_exec_query_stats
dosys.dm_exec_sql_text
isys.dm_exec_query_plan
.Odpowiedzi:
Kiedy jeden z facetów napisze w ten sposób zapytania demo DMV, wyjaśnię dlaczego.
Czy to ważne, czy pytasz tylko o DMV? Nie. Ale wcześniej czy później weźmiesz jeden ze skryptów DMV i połączysz się z sys.databases lub sys.tables lub innym obiektem systemowym, aby uzyskać więcej informacji o tym, na co patrzysz. Jeśli nie czytałeś tam niezaangażowanych, możesz zostać zablokowany przez inne zapytania i zablokować inne zapytania. Wielokrotnie mnie to paliło, więc domyślnie po prostu używam CZYTAJ NIEZGODZONE, ilekroć wykonuję jakąkolwiek pracę diagnostyczną.
źródło
OBJECT_ID()
,SCHEMA_NAME()
itpNie widzę, żeby to miało jakąkolwiek różnicę.
Jeśli spróbuję wykonać następujące czynności i porównuję wyjście blokady dla obu poziomów izolacji w winmerge, są one dokładnie takie same (a nawet ich ustawienie
SERIALIZABLE
nie zmienia wyniku).źródło