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

چاپ

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

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


DMV چیست؟

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


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

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

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


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

برای مثال مجموعه دستور زیر با کمک 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 ها و توابع سیستمی همراه با مثال کاربردی


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

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


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