{"id":97702,"date":"2020-10-20T20:42:28","date_gmt":"2020-10-20T18:42:28","guid":{"rendered":"https:\/\/prohoster.info\/blog\/administrirovanie\/rasshifrovyvaem-key-i-page-waitresource-v-dedlokah-i-blokirovkah"},"modified":"2020-10-20T20:42:28","modified_gmt":"2020-10-20T18:42:28","slug":"rasshifrovyvaem-key-i-page-waitresource-v-dedlokah-i-blokirovkah","status":"publish","type":"post","link":"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/rasshifrovyvaem-key-i-page-waitresource-v-dedlokah-i-blokirovkah","title":{"rendered":"Rozszyfrowujemy Key i Page WaitResource w deadlockach i blokadach","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Je\u015bli korzystasz z raportu o blokadach (blocked process report) lub okresowo zbierasz grafy deadlock\u00f3w dostarczane przez SQL Server, od czasu do czasu napotkasz co\u015b takiego: <\/p>\n<blockquote><p>waitresource=\"PAGE: 6:3:70133\"<\/p>\n<p>waitresource=\"KEY: 6:72057594041991168 (ce52f92a058c)\"<\/p><\/blockquote>\n<p>\nCzasami, w tym gigantycznym XML-u, kt\u00f3ry analizujesz, b\u0119dzie wi\u0119cej informacji (kolumny deadlock\u00f3w zawieraj\u0105 list\u0119 zasob\u00f3w, kt\u00f3ra pomaga pozna\u0107 nazwy obiektu i indeksu), ale nie zawsze.<\/p>\n<p>Ten tekst pomo\u017ce ci je rozszyfrowa\u0107.<\/p>\n<p>Wszystkie informacje, kt\u00f3re tu s\u0105, dost\u0119pne s\u0105 w r\u00f3\u017cnych miejscach w internecie, po prostu s\u0105 mocno rozproszone! Chc\u0119 zebra\u0107 je wszystkie \u2014 od DBCC PAGE do hobt_id i niedokumentowanych funkcji %%physloc%% i %%lockres%%.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\nNajpierw porozmawiajmy o oczekiwaniach na blokadach PAGE, a nast\u0119pnie przejd\u017amy do blokad KEY.<\/p>\n<h3>1) waitresource=\"PAGE: 6:3:70133\" = Database_Id: FileId: PageNumber<\/h3>\n<p>\nJe\u015bli twoje zapytanie czeka na blokadzie PAGE, SQL Server poda ci adres tej strony.<\/p>\n<p>Rozk\u0142adaj\u0105c \u201ePAGE: 6:3:70133\u201d otrzymujemy:<\/p>\n<ul>\n<li>database_id = 6<\/li>\n<li>data_file_id = 3<\/li>\n<li>page_number = 70133<\/li>\n<\/ul>\n<h4>1.1) Rozszyfrowujemy database_id<\/h4>\n<p>\nZnajdziemy nazw\u0119 bazy danych za pomoc\u0105 zapytania:<\/p>\n<pre><code class=\"sql\">SELECT \n    name \nFROM sys.databases \nWHERE database_id=6;\nGO<\/code><\/pre>\n<p>\nTo jest publiczna <noindex><a rel=\"nofollow\" href=\"https:\/\/www.littlekendra.com\/2016\/09\/13\/deadlock-code-for-the-wideworldimporters-sample-database\/\">Baza danych WideWorldImporters<\/a><\/noindex> na moim SQL Server.<\/p>\n<h4>1.2) Szukamy nazwy pliku danych \u2014 je\u015bli jeste\u015b zainteresowany<\/h4>\n<p>\nZamierzamy u\u017cy\u0107 data_file_id w nast\u0119pnym kroku, aby znale\u017a\u0107 nazw\u0119 tabeli. Mo\u017cesz przej\u015b\u0107 do nast\u0119pnego kroku, ale je\u015bli interesuje ci\u0119 nazwa pliku, mo\u017cesz j\u0105 znale\u017a\u0107, wykonuj\u0105c zapytanie w kontek\u015bcie znalezionej Bazy Danych, podstawiaj\u0105c data_file_id do tego zapytania:<\/p>\n<pre><code class=\"sql\">USE WideWorldImporters;\nGO\nSELECT \n    name, \n    physical_name\nFROM sys.database_files\nWHERE file_id = 3;\nGO<\/code><\/pre>\n<p>\nW bazie danych WideWorldImporters plik nosi nazw\u0119 WWI_UserData i jest zapisany na C:MSSQLDATAWideWorldImporters_UserData.ndf. (Ups, przy\u0142apa\u0142e\u015b mnie na wrzucaniu plik\u00f3w na dysk z systemem! Nie! Niezr\u0119cznie to wysz\u0142o).<\/p>\n<h4>1.3) Uzyskujemy nazw\u0119 obiektu z DBCC PAGE<\/h4>\n<p>\nTeraz wiemy, \u017ce strona #70133 w pliku danych 3 nale\u017cy do bazy danych WorldWideImporters. Mo\u017cemy zobaczy\u0107 zawarto\u015b\u0107 tej strony za pomoc\u0105 niedokumentowanego DBCC PAGE i flagi \u015bladu 3604.<br \/>\nUwaga: wol\u0119 u\u017cywa\u0107 DBCC PAGE na przywr\u00f3conej kopii z backupu gdzie\u015b na innym serwerze, poniewa\u017c to niedokumentowana opcja. W niekt\u00f3rych przypadkach mo\u017ce <noindex><a rel=\"nofollow\" href=\"https:\/\/connect.microsoft.com\/SQLServer\/feedback\/details\/776144\/dbcc-page-incorrect-output-with-filtered-indexes\">prowadzi\u0107 do utworzenia zrzutu<\/a><\/noindex> (<i>przyp. t\u0142umacza \u2014 link prowadzi donik\u0105d, ale s\u0105dz\u0105c po adresie URL, chodzi o indeksy filtrowane.<\/i>).<\/p>\n<pre><code class=\"sql\">\/* This trace flag makes DBCC PAGE output go to our Messages tab\ninstead of the SQL Server Error Log file *\/\nDBCC TRACEON (3604);\nGO\n\/* DBCC PAGE (DatabaseName, FileNumber, PageNumber, DumpStyle)*\/\nDBCC PAGE ('WideWorldImporters',3,70133,2);\nGO<\/code><\/pre>\n<p>\nPrzewijaj\u0105c do wynik\u00f3w, mo\u017cna znale\u017a\u0107 object_id i index_id.<br \/>\n<img decoding=\"async\" alt=\"Rozszyfrowujemy Key i Page WaitResource w deadlockach i blokadach\" src=\"\/wp-content\/uploads\/2020\/10\/c5a42f36fb7a87cfd2e11adfef3caa17.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nPrawie gotowe! Teraz mo\u017cesz znale\u017a\u0107 nazwy schematu i indeksu za pomoc\u0105 zapytania:<\/p>\n<pre><code class=\"sql\">USE WideWorldImporters;\nGO\nSELECT \n    sc.name as schema_name, \n    so.name as object_name, \n    si.name as index_name\nFROM sys.objects as so \nJOIN sys.indexes as si on \n    so.object_id=si.object_id\nJOIN sys.schemas AS sc on \n    so.schema_id=sc.schema_id\nWHERE \n    so.object_id = 94623380\n    and si.index_id = 1;\nGO<\/code><\/pre>\n<p>\nI oto widzimy, \u017ce oczekiwanie na blokadzie mia\u0142o miejsce na indeksie PK_Sales_OrderLines tabeli Sales.OrderLines.<\/p>\n<p>Uwaga: w SQL Server 2014 i nowszych nazw\u0119 obiektu mo\u017cna r\u00f3wnie\u017c znale\u017a\u0107 za pomoc\u0105 niedokumentowanego DMO sys.dm_db_database_page_allocations. Ale b\u0119dziesz musia\u0142 zapyta\u0107 ka\u017cd\u0105 stron\u0119 w bazie danych, co nie wygl\u0105da zbyt dobrze w przypadku du\u017cych baz danych, dlatego u\u017cy\u0142em DBCC PAGE.<\/p>\n<h4>1.4) Czy mo\u017cna zobaczy\u0107 dane na stronie, kt\u00f3ra by\u0142a zablokowana?<\/h4>\n<p>\nC\u00f3\u017c, tak. Ale\u2026 czy na pewno tego potrzebujesz?<br \/>\nTo jest wolne nawet na ma\u0142ych tabelach. Ale w sumie to jest do\u015b\u0107 ciekawe, wi\u0119c, skoro dotar\u0142e\u015b do tego momentu\u2026 porozmawiajmy o %%physloc%%!<\/p>\n<p>%%physloc%% to niedokumentowany kawa\u0142ek magii, kt\u00f3ry zwraca fizyczny identyfikator dla ka\u017cdego rekordu. Mo\u017cesz u\u017cy\u0107 <noindex><a rel=\"nofollow\" href=\"http:\/\/www.sqlskills.com\/blogs\/paul\/sql-server-2008-new-undocumented-physical-row-locator-function\/\">%%physloc%% razem z sys.fn_PhysLocFormatter w SQL Server 2008 i nowszych<\/a><\/noindex>.<\/p>\n<p>Teraz, gdy wiemy, \u017ce chcieli\u015bmy na\u0142o\u017cy\u0107 blokad\u0119 na stron\u0119 w Sales.OrderLines, mo\u017cemy zobaczy\u0107 wszystkie dane w tej tabeli, kt\u00f3re s\u0105 przechowywane w pliku danych #3 na stronie #70133, za pomoc\u0105 nast\u0119puj\u0105cego zapytania:<\/p>\n<pre><code class=\"sql\">Use WideWorldImporters;\nGO\nSELECT \n    sys.fn_PhysLocFormatter (%%physloc%%),\n    *\nFROM Sales.OrderLines (NOLOCK)\nWHERE sys.fn_PhysLocFormatter (%%physloc%%) like '(3:70133%'\nGO<\/code><\/pre>\n<p>Jak ju\u017c m\u00f3wi\u0142em \u2013 to jest wolne nawet na malutkich tabelach. Doda\u0142em do zapytania NOLOCK, poniewa\u017c i tak nie mamy \u017cadnych gwarancji, \u017ce dane, na kt\u00f3re chcemy spojrze\u0107, s\u0105 takie same, jakie by\u0142y w momencie, gdy wykryto blokad\u0119 \u2013 wi\u0119c spokojnie mo\u017cemy robi\u0107 brudne odczyty.<br \/>\nAle, hurra, zapytanie zwraca dok\u0142adnie te 25 wierszy, o kt\u00f3re nasza pro\u015bba walczy\u0142a.<br \/>\n<img decoding=\"async\" alt=\"Rozszyfrowujemy Key i Page WaitResource w deadlockach i blokadach\" src=\"\/wp-content\/uploads\/2020\/10\/e7909bb7c496d9509e5f5a1aa30a135a.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nDo\u015b\u0107 o blokadach PAGE. Co je\u015bli czekamy na blokad\u0119 KEY?<\/p>\n<h3>2) waitresource=\u201cKEY: 6:72057594041991168 (ce52f92a058c)\u201d = Database_Id, HOBT_Id (magiczny hash, kt\u00f3ry mo\u017cna zdekodowa\u0107 za pomoc\u0105 %%lockres%%, je\u015bli naprawd\u0119 tego chcesz)<\/h3>\n<p>Je\u015bli twoje zapytanie pr\u00f3buje na\u0142o\u017cy\u0107 blokad\u0119 na rekord w indeksie i zostaje zablokowane, otrzymujesz zupe\u0142nie inny typ adresu.<br \/>\nRozdzielaj\u0105c \u201c6:72057594041991168 (ce52f92a058c)\u201d na cz\u0119\u015bci, otrzymujemy:<\/p>\n<ul>\n<li>database_id = 6<\/li>\n<li>hobt_id = 72057594041991168<\/li>\n<li>magiczny hash = (ce52f92a058c)<\/li>\n<\/ul>\n<h4>2.1) Dekodujemy database_id<\/h4>\n<p>\nTo dzia\u0142a dok\u0142adnie tak samo, jak w powy\u017cszym przyk\u0142adzie! Znajdujemy nazw\u0119 bazy danych za pomoc\u0105 zapytania:<\/p>\n<pre><code class=\"sql\">SELECT \n    name \nFROM sys.databases \nWHERE database_id=6;\nGO<\/code><\/pre>\n<p>\nW moim przypadku to wci\u0105\u017c ta sama <noindex><a rel=\"nofollow\" href=\"https:\/\/www.littlekendra.com\/2016\/09\/13\/deadlock-code-for-the-wideworldimporters-sample-database\/\">Baza danych WideWorldImporters<\/a><\/noindex>.<\/p>\n<h4>2.2) Rozszyfrowujemy hobt_id<\/h4>\n<p>\nW kontek\u015bcie znalezionej bazy danych nale\u017cy wykona\u0107 zapytanie do sys.partitions z par\u0105 join\u00f3w, kt\u00f3re pomog\u0105 okre\u015bli\u0107 nazwy tabeli i indeksu\u2026<\/p>\n<pre><code class=\"sql\">USE WideWorldImporters;\nGO\nSELECT \n    sc.name as schema_name, \n    so.name as object_name, \n    si.name as index_name\nFROM sys.partitions AS p\nJOIN sys.objects as so on \n    p.object_id=so.object_id\nJOIN sys.indexes as si on \n    p.index_id=si.index_id and \n    p.object_id=si.object_id\nJOIN sys.schemas AS sc on \n    so.schema_id=sc.schema_id\nWHERE hobt_id = 72057594041991168;\nGO<\/code><\/pre>\n<p>\nM\u00f3wi mi, \u017ce zapytanie czeka\u0142o na blokadzie Application.Countries, u\u017cywaj\u0105c indeksu PK_Application_Countries.<\/p>\n<h4>2.3) Teraz troch\u0119 magii %%lockres%% \u2014 je\u015bli chcesz dowiedzie\u0107 si\u0119, kt\u00f3ra rekord zosta\u0142a zablokowana<\/h4>\n<p>\nJe\u015bli naprawd\u0119 chc\u0119 wiedzie\u0107, na kt\u00f3rym wierszu potrzebna by\u0142a blokada, mog\u0119 to ustali\u0107 za pomoc\u0105 zapytania do samej tabeli. Mo\u017cemy u\u017cy\u0107 nieudokumentowanej funkcji %%lockres%%, aby znale\u017a\u0107 rekord, kt\u00f3ry pasuje do magicznego hasha.<br \/>\nWe\u017a pod uwag\u0119, \u017ce to zapytanie b\u0119dzie skanowa\u0107 ca\u0142\u0105 tabel\u0119, a w przypadku du\u017cych tabel mo\u017ce by\u0107 to naprawd\u0119 uci\u0105\u017cliwe:<\/p>\n<pre><code class=\"sql\">SELECT\n    *\nFROM Application.Countries (NOLOCK)\nWHERE %%lockres%% = '(ce52f92a058c)';\nGO<\/code><\/pre>\n<p>\nDoda\u0142am NOLOCK (<noindex><a rel=\"nofollow\" href=\"https:\/\/twitter.com\/Aschenbrenner\/status\/788036874891853824\">na rad\u0119 Klausa Aschenbrennera na Twitterze<\/a><\/noindex>) poniewa\u017c blokady mog\u0105 by\u0107 problemem. Chcemy po prostu zobaczy\u0107, co si\u0119 tam teraz dzieje, a nie co tam by\u0142o, gdy rozpocz\u0119\u0142a si\u0119 transakcja \u2014 nie s\u0105dz\u0119, \u017ce sp\u00f3jno\u015b\u0107 danych jest dla nas wa\u017cna.<br \/>\nVoil\u00e0, rekord, o kt\u00f3ry walczyli\u015bmy!<br \/>\n<img decoding=\"async\" alt=\"Rozszyfrowujemy Key i Page WaitResource w deadlockach i blokadach\" src=\"\/wp-content\/uploads\/2020\/10\/4107bfa33261ea62d17f27f61b1b4c23.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h3>Podzi\u0119kowania i dalsza lektura<\/h3>\n<p>\nNie pami\u0119tam, kto pierwszy opisa\u0142 wiele z tych rzeczy, ale oto dwa posty o najmniej udokumentowanych aspektach, kt\u00f3re mog\u0105 Ci si\u0119 spodoba\u0107:<\/p>\n<ul>\n<li>Post Paula Randala o <noindex><a rel=\"nofollow\" href=\"http:\/\/www.sqlskills.com\/blogs\/paul\/sql-server-2008-new-undocumented-physical-row-locator-function\/\">%%physloc%% i sys.fn_PhysLocFormatter<\/a><\/noindex> (jak przekazali\u015bmy nasze dane w pierwszym przyk\u0142adzie)<\/li>\n<li>Pytanie na StackOverflow o <noindex><a rel=\"nofollow\" href=\"https:\/\/dba.stackexchange.com\/questions\/106762\/how-can-i-convert-a-key-in-a-sql-server-deadlock-report-to-the-value\">u\u017cywaniu %%lockres%%<\/a><\/noindex> (jak znale\u017ali\u015bmy dane w drugim przyk\u0142adzie). Jedna z odpowiedzi prowadzi do postu <noindex><a rel=\"nofollow\" href=\"http:\/\/www.scarydba.com\/2010\/03\/18\/undocumented-virtual-column-lockres\/\">Granta Fritcheya o %%lockres%%, napisanego jeszcze w 2010 roku<\/a><\/noindex>.<\/li>\n<\/ul>\n<p>\u0179r\u00f3d\u0142o: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/524098\/\">habr.com<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0415\u0441\u043b\u0438 \u0432\u044b \u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0435\u0441\u044c \u043e\u0442\u0447\u0451\u0442\u043e\u043c \u043e \u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u043a\u0430\u0445 (blocked process report) \u0438\u043b\u0438 \u0441\u043e\u0431\u0438\u0440\u0430\u0435\u0442\u0435 \u0433\u0440\u0430\u0444\u044b \u0434\u0435\u0434\u043b\u043e\u043a\u043e\u0432, \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u043c\u044b\u0435 SQL Server&#8217;\u043e\u043c, \u043f\u0435\u0440\u0438\u043e\u0434\u0438\u0447\u0435\u0441\u043a\u0438, \u0432\u044b \u0431\u0443\u0434\u0435\u0442\u0435 \u0441\u0442\u0430\u043b\u043a\u0438\u0432\u0430\u0442\u044c\u0441\u044f \u0441 \u0432\u043e\u0442 \u0442\u0430\u043a\u0438\u043c\u0438 \u0448\u0442\u0443\u043a\u0430\u043c\u0438: waitresource=\u201cPAGE: 6:3:70133\u201c waitresource=\u201cKEY: 6:72057594041991168 (ce52f92a058c)\u201c \u0418\u043d\u043e\u0433\u0434\u0430, \u0432 \u0442\u043e\u043c \u0433\u0438\u0433\u0430\u043d\u0442\u0441\u043a\u043e\u043c XML, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432\u044b \u0438\u0437\u0443\u0447\u0430\u0435\u0442\u0435, \u0431\u0443\u0434\u0435\u0442 \u0431\u043e\u043b\u044c\u0448\u0435 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 (\u0433\u0440\u0430\u0444\u044b \u0434\u0435\u0434\u043b\u043e\u043a\u043e\u0432 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442 \u0441\u043f\u0438\u0441\u043e\u043a \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u043e\u043c\u043e\u0433\u0430\u0435\u0442 \u0443\u0437\u043d\u0430\u0442\u044c \u0438\u043c\u0435\u043d\u0430 \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u0438 \u0438\u043d\u0434\u0435\u043a\u0441\u0430), \u043d\u043e \u043d\u0435 \u0432\u0441\u0435\u0433\u0434\u0430. [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":97703,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-97702","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.1.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0415\u0441\u043b\u0438 \u0432\u044b \u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0435\u0441\u044c \u043e\u0442\u0447\u0451\u0442\u043e\u043c \u043e \u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u043a\u0430\u0445 (blocked process report) \u0438\u043b\u0438 \u0441\u043e\u0431\u0438\u0440\u0430\u0435\u0442\u0435 \u0433\u0440\u0430\u0444\u044b \u0434\u0435\u0434\u043b\u043e\u043a\u043e\u0432, \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u043c\u044b\u0435 SQL Server&#039;\u043e\u043c, \u043f\u0435\u0440\u0438\u043e\u0434\u0438\u0447\u0435\u0441\u043a\u0438, \u0432\u044b \u0431\u0443\u0434\u0435\u0442\u0435 \u0441\u0442\u0430\u043b\u043a\u0438\u0432\u0430\u0442\u044c\u0441\u044f \u0441 \u0432\u043e\u0442 \u0442\u0430\u043a\u0438\u043c\u0438 \u0448\u0442\u0443\u043a\u0430\u043c\u0438: .\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/rasshifrovyvaem-key-i-page-waitresource-v-dedlokah-i-blokirovkah\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"pl_PL\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0420\u0430\u0441\u0448\u0438\u0444\u0440\u043e\u0432\u044b\u0432\u0430\u0435\u043c Key \u0438 Page WaitResource \u0432 \u0434\u0435\u0434\u043b\u043e\u043a\u0430\u0445 \u0438 \u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u043a\u0430\u0445 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0415\u0441\u043b\u0438 \u0432\u044b \u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0435\u0441\u044c \u043e\u0442\u0447\u0451\u0442\u043e\u043c \u043e \u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u043a\u0430\u0445 (blocked process report) \u0438\u043b\u0438 \u0441\u043e\u0431\u0438\u0440\u0430\u0435\u0442\u0435 \u0433\u0440\u0430\u0444\u044b \u0434\u0435\u0434\u043b\u043e\u043a\u043e\u0432, \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u043c\u044b\u0435 SQL Server&#039;\u043e\u043c, \u043f\u0435\u0440\u0438\u043e\u0434\u0438\u0447\u0435\u0441\u043a\u0438, \u0432\u044b \u0431\u0443\u0434\u0435\u0442\u0435 \u0441\u0442\u0430\u043b\u043a\u0438\u0432\u0430\u0442\u044c\u0441\u044f \u0441 \u0432\u043e\u0442 \u0442\u0430\u043a\u0438\u043c\u0438 \u0448\u0442\u0443\u043a\u0430\u043c\u0438: .\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/rasshifrovyvaem-key-i-page-waitresource-v-dedlokah-i-blokirovkah\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2020-10-20T18:42:28+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-10-20T18:42:28+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Rozszyfrowanie Key i Page WaitResource w deadlockach i blokadach | ProHoster","description":"Je\u015bli korzystasz z raportu o blokadach (blocked process report) lub zbierasz grafy deadlock\u00f3w dostarczane przez SQL Servera, od czasu do czasu napotkasz takie problemy: .","canonical_url":"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/rasshifrovyvaem-key-i-page-waitresource-v-dedlokah-i-blokirovkah","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"pl_PL","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0420\u0430\u0441\u0448\u0438\u0444\u0440\u043e\u0432\u044b\u0432\u0430\u0435\u043c Key \u0438 Page WaitResource \u0432 \u0434\u0435\u0434\u043b\u043e\u043a\u0430\u0445 \u0438 \u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u043a\u0430\u0445 | ProHoster","og:description":"\u0415\u0441\u043b\u0438 \u0432\u044b \u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0435\u0441\u044c \u043e\u0442\u0447\u0451\u0442\u043e\u043c \u043e \u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u043a\u0430\u0445 (blocked process report) \u0438\u043b\u0438 \u0441\u043e\u0431\u0438\u0440\u0430\u0435\u0442\u0435 \u0433\u0440\u0430\u0444\u044b \u0434\u0435\u0434\u043b\u043e\u043a\u043e\u0432, \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u043c\u044b\u0435 SQL Server'\u043e\u043c, \u043f\u0435\u0440\u0438\u043e\u0434\u0438\u0447\u0435\u0441\u043a\u0438, \u0432\u044b \u0431\u0443\u0434\u0435\u0442\u0435 \u0441\u0442\u0430\u043b\u043a\u0438\u0432\u0430\u0442\u044c\u0441\u044f \u0441 \u0432\u043e\u0442 \u0442\u0430\u043a\u0438\u043c\u0438 \u0448\u0442\u0443\u043a\u0430\u043c\u0438: .","og:url":"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/rasshifrovyvaem-key-i-page-waitresource-v-dedlokah-i-blokirovkah","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2020-10-20T18:42:28+00:00","article:modified_time":"2020-10-20T18:42:28+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"97702","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 10:15:26","updated":"2022-10-03 07:13:25","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts\/97702","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/comments?post=97702"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts\/97702\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/media\/97703"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/media?parent=97702"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/categories?post=97702"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/tags?post=97702"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}