Bekleyen Sebepleri Bulun


34

Belirli bir bekleme süresi göz önüne alındığında, hangi sorguların bu beklemeye neden olduğunu SQL 2000 R2 Server'da nasıl beklersiniz?

Bu özel durumda merak ediyorum async_network_io.

Yanıtlar:


32

Bunları kontrol etmenin en sevdiğim yolu Adam Machanic'in mükemmel sp_WhoIsActive saklı proc'unu kullanmak. İşte nasıl kullanılacağı hakkında bir video ve kodu indirmek için bir link:

http://www.brentozar.com/archive/2010/09/sql-server-dba-scripts-how-to-find-slow-sql-server-queries/

Buradaki sonuç, sonuçları kontrol etmek için periyodik olarak çalıştırmanız gerektiğidir. Bu verilerin sizin için periyodik olarak toplanmasını istiyorsanız, Kendra Little'ın sp_WhoIsActive sonuçlarını tabloya kaydetme konusundaki öğreticisini inceleyin:

http://www.littlekendra.com/2011/02/01/whoisactive/

Son olarak, bir sorgu async_network_io için beklediğinde bir şeyin ateşlenmesini istiyorsanız, Extended Events adlı yeni bir araç kullanabilirsiniz. Bu, sihirbazı gerçekleştirebileceğiniz SQL Server motorunun içindeki hata ayıklama noktaları gibi. Açıkçası, şu anda 2008'de kullanmak biraz acı verici.


14

'async_wait_io' bir bekleme türü değil. Olası ASYNC% bekleme türleri:

  • ASYNC_IO_COMPLETION
  • ASYNC_NETWORK_IO
  • ASYNC_DISKPOOL_LOCK

Bekleme türleri için birkaç iyi bağlantı:

Geçerli bekleyenleri bulmak için sorguya gitmem:

SELECT  req.session_id
       ,blocking_session_id
       ,ses.host_name
       ,DB_NAME(req.database_id) AS DB_NAME
       ,ses.login_name
       ,req.status
       ,req.command
       ,req.start_time
       ,req.cpu_time
       ,req.total_elapsed_time / 1000.0 AS total_elapsed_time
       ,req.command
       ,req.wait_type
       ,sqltext.text
FROM    sys.dm_exec_requests req
CROSS APPLY sys.dm_exec_sql_text(sql_handle) AS sqltext
JOIN    sys.dm_exec_sessions ses
        ON ses.session_id = req.session_id
WHERE req.wait_type IS NOT NULL
--WHERE req.wait_type = '?'

Üzgünüm async_network_io demek istedim.
Kyle Brandt

Diğer çok iyi makaleler: Brent O ve Buck Woody ile Bekle istatistiklerini bekle istatistiklerini kaybet . Çok değerliler!
Marian

@Marian: Brent bugün bana bazı şeyler gösteriyordu ama buna başlamadan önce zamanımız tükenmişti, belki de o makale o kadar iyi olacak :-)
Kyle Brandt

@Kyle, size bir şeyler göstermek ve hala bize sormak için Brent var mı? :) Onu ofisindeki sandalyeye zincirlemelisin .. beynini kurula .. ve sonra bırak gitsin;). Bize sonuçları bildirmeyi unutmayın!
Marian

@Marian: Yup yardımını aldığı için çok şanslı. Mesele şu ki, burada bir cevap alırsam İnternet'teki herkes de cevap alırsa :-)
Kyle Brandt
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.