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

Použití Spotlight Cloud k vyřešení blokování serveru SQL

Blokování serveru SQL v databázi nastane, když transakce zablokuje prostředek a zabrání jednomu nebo více připojením v provozu na stejném prostředku. Druhé připojení musí před pokračováním počkat na uvolnění zámku. To se provádí za účelem zajištění izolační složky ACID – což znamená, že souběžné transakce nejsou vzájemně viditelné, dokud nejsou dokončeny. Blokování na serveru SQL Server může způsobit katastrofu ve výkonu v jakémkoli prostředí.

Jedním z úkolů, které správci databáze dělají, je identifikovat dotaz provádějící blokování, opravit jej a poté jít o krok dále, aby určil hlavní příčinu. Zkoumání základní příčiny, zvláště po faktu, může být velmi obtížným úkolem. Pro většinu to znamená velmi zdlouhavý proces zakořenění prostřednictvím zobrazení dynamické správy serveru SQL Server, jako je s ys.dm_exec_requests nebo spouštění systémových procedur jako sp_who2 zjistit podrobnosti o ID systémových procesů (SPIDS) zapojených do blockchainu. Spotlight Cloud může výrazně snížit vaše úsilí o identifikaci těchto blokujících událostí.

Použití monitorování databáze pro identifikaci bloků SQL Server

Obrázek 1:Přehledný panel

Počínaje řídicím panelem Přehled poskytuje Spotlight Cloud jasný pohled na celé prostředí. Na první pohled zobrazuje metriky včetně počtu relací, procesů, využití paměti, spotřeby disků a čekání. Ještě důležitější je, že jasně ukazuje blokující aktivitu; uprostřed obrázku 1 můžete jasně vidět, že v současné době existují dva blokované procesy.

Pro DBA je pro vyřešení problémů s blokováním nezbytné dostat se do podrobností. Spotlight Cloud nám dává možnost proniknout do dalších podrobností relace jednoduchým výběrem rozbalovací nabídky z Přehledu, jak je znázorněno na obrázku 2.

Obrázek 2:Rozbalovací nabídka Přehled

Spotlight Cloud vám umožňuje snadno zjistit, jaké relace jsou blokovány a jaké příkazy se týkají. Na obrázku 3 můžete vidět, že oba SPID 59 a 65 jsou blokovány (označeno oranžově zvýrazněným kolem stavu), což odpovídá počtu blokovaných. Také si všimnete, že Spotlight Cloud nadále poskytuje souhrnné podrobnosti o našem aktuálním stavu instance, což nám umožňuje sledovat důležité čítače a zároveň se ponořit do problémů s výkonem.

Použití Spotlight Cloud SQL Server Monitoring k vyřešení problémů s blokováním

Obrázek 3:Panel relací

Řídicí panel Relace (jak je vidět na obrázku 3) nám poskytuje důležité informace, které potřebujeme k vyřešení problému. Zde můžete najít důležité informace, jako je jaký uživatel spouští výpisy, jaká databáze je ovlivněna a kdy byla relace uvedena. Hloubka podrobností šetří skutečný čas těm správcům databází, kteří potřebují rychlé odpovědi na to, co blokování způsobuje, aby to mohli vyřešit. Nejenže vidíte, že máte dva zablokované přechody, ale také vidíme, že oba jsou příkazy UPDATE ve stejné tabulce spouštěné účtem síťových služeb proti databázi Prodej. Aktuální výpis je zobrazen v pravém dolním rohu. Nakonec vidíme jak aktivní SPID, tak SPID, kterým je blokován.

Směrem k pravému hornímu rohu obrázku 3, v modrém textu, vám Spotlight Cloud řekne, kam se ve svém vyšetřování vydat dál. Produkt v každé vrstvě dává jasnou cestu, jak se ponořit ještě hlouběji. Kliknutím na odkaz Prozkoumat v analyzátoru pracovní zátěže uvidíte, co vyvolalo SPID 61, který je náhodou blokátorem vedení pro SPID 65.

Obrázek 4:Analyzátor pracovní zátěže (zde chceme rozšířit blokované relace)

Nástroj Workload Analyzer vám poskytuje dimenzi rozboru, která vám umožňuje přejít ke konkrétním zdrojům, jako je blokování. Na obrázku 4 můžete vidět, jak se ponoříme dále, kliknutím na dvě rozšiřující šipky v rohu sekce Blokované relace.

Obrázek 5:Podrobnosti o blokovaných relacích

Nyní, když znáte příslušnou databázi, můžete kopat o něco dále. V levé navigaci můžete přejít do databáze prodejů. Zde vidíte SPID 61 a 64 včetně aktuálního stavu. Obě tato ID systémového procesu blokují a všimněte si, že číslo SPID 59 je nyní také blokováno SPID 64. Toto zobrazení pomáhá zajistit, že budete mít náskok před zablokováním, když budete pokračovat ve vyšetřování.

Ve spodní polovině obrázku 5 můžete v Mapování blokovaných relací vidět, že vám sděluje podrobnosti o SPID 61, což je v tomto případě náš blokátor olova. Viník je ve skutečnosti součástí úlohy SQL Agent, která je spuštěna, což dává smysl na základě uživatele, kterého jsme zjistili, že spouští příkaz. Pokud si vzpomínáte, byl to účet síťové služby, NT AUTHORITY\NETWORK SERVICE. V této instanci je služba SQL Agent Service spuštěna pod touto konkrétní sadou pověření.

Dalším krokem je zjistit, jaké úlohy běží, a zjistit, zda můžete úlohu zabít, abyste zastavili blokování. Normálně byste zašli do SQL Server Management Studio, abyste si prohlédli SQL Agent a podívali se na úlohy, ale Spotlight vám to usnadní a poskytne vám také komplexní pohled na úlohy. Najdete to kliknutím na šipku vedle slov „Analyzátor pracovní zátěže“ nahoře stejně jako při přechodu z Přehledu na Relace.

Obrázek 6:Rozbalovací nabídka z Analyzátoru pracovní zátěže

Prevence budoucích blokování serveru SQL

Zkoumání blokování vyžaduje čas a někdy, když zkoumáme konkrétní problém, blokování se vyřeší samo. V tomto případě byla spuštěná úloha dokončena a aktualizace, které byly blokovány, mohly být spuštěny. I když bezprostřední problém již neexistuje, stále musíte hledat hlavní příčinu, abyste se ujistili, že tomu můžete v budoucnu předejít.

Protože jste již identifikovali SPID 61 jako úlohu, která byla spuštěna, a protože čas uplynul, budete se nyní muset podívat do historie. Chcete-li si prohlédnout historii, jednoduše změňte zobrazované časové období na časové období aktivního blokování. Na obrázku 7 vidíte časové období v pravém rohu, na který můžete kliknout na rozbalovací nabídku a podle toho upravit časy. Dále chcete vyhledat SPID 61 pomocí funkce vyhledávání. Každé prostředí je jiné, takže to, co s těmito informacemi uděláte, bude nyní záviset. To, zda upravíte načasování úlohy, provedete nějaké změny v indexech, kódu nebo konfiguracích, bude zcela na vás.

Obrázek 7 Úlohy

Obrázek 8:Dlouhé bloky

Některé bloky prostě přicházejí a odcházejí tak rychle, že nemají žádný významný vliv na výkon. Když tu zůstanou déle, musíme o tom rychle vědět. Spotlight Cloud má alarm „dlouho běžícího zámku“, který uživatele upozorní na bloky, které nezmizí.

Obrázek 9:Dimenze blokovaného objektu

Blokování je příznakem některých větších problémů a často vyžaduje různé perspektivy, než se dostane ke kořenové příčině. Dimenze blokovaného objektu v analyzátoru pracovní zátěže Spotlight Cloud umožňuje uživateli rychle zjistit objekty, které pro danou instanci generují nejvíce blokující aktivitu.

Identifikace blokování a hledání příčiny je pro správce databází nejtěžší. Spotlight Cloud Professional nám umožňuje dostat se k těmto informacím rychle a efektivně. Když čas vyřeší aktivní problém, Spotlight Cloud nám umožní pokračovat ve vyšetřování, abychom se dostali ke kořenové příčině, a nakonec nám poskytne informace, které potřebujeme k přijímání informovaných rozhodnutí o tom, jak předejít budoucím jevům.

Chcete vidět Spotlight Cloud v akci? Začněte svou bezplatnou 30denní zkušební verzi ještě dnes.


  1. Úvod do Oracle RMAN

  2. Oracle kurzor pro přiřazení

  3. Jak vytvořit jednoduchý výběrový dotaz v návrhovém zobrazení v Accessu 2016

  4. Jak převést unixovou epochu na časové razítko