آموزش پیشرفته SQL Server (جلسه سوم) - آشنایی با DMV ها و توابع سیستمی

آشنایی با DMV ها و توابع سیستمی، قسمتی از آموزش پیشرفته SQL Server است، پیشنهاد می شود قبل از مطالعه ی آشنایی با DMV ها و توابع سیستمی، قسمت های قبلی را مطالعه فرمایید.


DMV چیست؟

هدف: امکان انجام عملیات های سیستمی را فراهم می نماید.


 آشنایی با توابع آماری سیستمی

در ادامه لیستی از این توابع به همراه کاربرد هر یک آمده است:

  • CONNECTIONS@@: تعداد اتصال یا تلاش برای اتصال به SQL SERVER
  • PACK_RECEIVED@@:  تعداد کل بسته رسیده از شبکه مربوط به اتصال SQL SERVER
  • PACK_SENT@@: تعداد کل بسته ارسالی شبکه مربوط به اتصال SQL SERVER
  • PACKET_ERRORS@@: تعداد کل خطاهای بسته شبکه مربوط به اتصال SQL SERVER
  • TOTAL_READ@@: تعداد کل خواندنها از روی دیسک در آخرین راه اندازی SQL SERVER
  • TOTAL_WRITE@@: تعداد کل نوشتن های روی دیسک در آخرین راه اندازی SQL SERVER
  • TOTAL_ERRORS@@: تعداد خطای خواندن/نوشتن روی دیسک در آخرین راه اندازی SQL SERVER
  • @@cpu_busy: مقدار زمان مصرفی CPU برای پردازشهای SQL SERVER برحسب میلی ثانیه
  • @@io_busy: مقدار زمان پردازشهای IO برحسب میلی ثانیه
  • @@timeticks: تعداد میکروثانیه ها در هر تیک ساعت CPU

توجه: با کمک دستور SP_MONITOR میتوان با تمامی اطلاعات بالا دست یافت


آشنایی با DMV های سیستمی:

  • sys.dm_exec_connections: اطلاعاتی راجه به اتصالهای ایجاد شده به یک instance از SQL SERVER را ارائه می نماید.

  • sys.dm_exec_sessions: به ازاء هر Session ایجاد شده اطلاعاتی از قبیل client version, client program name, client login time, login user, current session setting,را در یک ردیف ارائه می کند.

  • sys.dm_exec_text_query_plan: اطلاعاتی را برای پلان اجرایی یک پرس و جو - Query در قالب متن ارائه می مند که این قالب متنی بدون محدودیت در اندازه می باشد.

  • sys.dm_exec_sql_text: متن پرس وجو را با حذف توابع موجود در آن بر می گرداند.

  • sys.dm_exec_requests: اطلاعاتی را در مورد هر درخواست اجرا شده در SQL SERVER بیان می کند.

  • sys.dm_exec_query_stats: اطلاعاتی در مورد پلان اجرایی - Execution Plan با کمک Statistic های موجود در قالب یک ردیف برای هر پرس و جو نشان می دهد.

برای مثال مجموعه دستور زیر با کمک DMV های بالا 5 پرس و جوی بالای اجرا شده از نظر میانگین زمان پردازنده - average CPU time را نشان می دهد

آشنایی با DMV ها و توابع سیستمی

USE AdventureWorks2008R2;
GO
SELECT TOP 5 query_stats.query_hash AS "Query Hash", 
    SUM(query_stats.total_worker_time) / SUM(query_stats.execution_count) AS "Avg CPU Time",
    MIN(query_stats.statement_text) AS "Statement Text"
FROM 
    (SELECT QS.*, 
    SUBSTRING(ST.text, (QS.statement_start_offset/2) + 1,
    ((CASE statement_end_offset 
        WHEN -1 THEN DATALENGTH(ST.text)
        ELSE QS.statement_end_offset END 
            - QS.statement_start_offset)/2) + 1) AS statement_text
     FROM sys.dm_exec_query_stats AS QS
     CROSS APPLY sys.dm_exec_sql_text(QS.sql_handle) as ST) as query_stats
GROUP BY query_stats.query_hash
ORDER BY 2 DESC;
GO

توجهبرای دانلود پایگاه داده نمونه  برای SQL SERVER می توانید به آدرس http://msftdbprodsamples.codeplex.com مراجعه نمایید.

به عنوان مثال دوم مجموعه دستورات زیر تمامی اتصالات ایجاد شده به یک نمونه - Instance از SQL SERVER از طریق یک آدرس  IP منحصربفرد را نشان می دهد:

آشنایی با DMV ها و توابع سیستمی

-- Get a count of SQL connections by IP address
SELECT dec.client_net_address ,
des.program_name ,
des.host_name ,
--des.login_name ,
COUNT(dec.session_id) AS connection_count
FROM sys.dm_exec_sessions AS des
INNER JOIN sys.dm_exec_connections AS dec
ON des.session_id = dec.session_id
-- WHERE LEFT(des.host_name, 2) = 'WK'
GROUP BY dec.client_net_address ,
des.program_name ,
des.host_name
-- des.login_name
-- HAVING COUNT(dec.session_id) > 1
ORDER BY des.program_name,
dec.client_net_address ;

 خروجی این مجموعه دستور به صورت زیر خواهد بود:

آشنایی با DMV ها و توابع سیستمی


در ادامه بحث آشنایی با DMV ها و توابع سیستمی خواهید دید...!

1-آشنایی کامل با DMV ها و توابع سیستمی

2- آموزش جامع نحوه اجرا و استفاده از DMV ها و توابع سیستمی همراه با مثال کاربردی


دسترسی به موارد آموزشی بالا در بسته خریداری شده

  • شماره جلسه: 3
  • نام فایل ویدئو: 02
  • فرمت فایل: mp4.

نقطه شروع بحث بالا (آشنایی با DMV ها و توابع سیستمی) در ویدئو:  26:00


برای خرید و دانلود کاملآموزش پیشرفته SQL Server کلیک کنید.

READ MORE