Danh mục

Kiểm tra lập trình SQL Server bằng Windows PowerShell

Số trang: 12      Loại file: pdf      Dung lượng: 182.69 KB      Lượt xem: 9      Lượt tải: 0    
Hoai.2512

Xem trước 2 trang đầu tiên của tài liệu này:

Thông tin tài liệu:

Kiểm tra SQL Server bằng Windows PowerShell – Phần 7.Trong phần sáu chúng tôi đã giới thiệu cho các bạn cách kiểm tra trạng thái cơ sở dữ liệu các thông tin về kích thước của cơ sở dữ liệu, còn trong phần này chúng tôi sẽ giới thiệu cho các bạn về cách lấy được các thông tin đó trên TOP 10 các truy vấn dựa trên hiệu suất CPU.
Nội dung trích xuất từ tài liệu:
Kiểm tra lập trình SQL Server bằng Windows PowerShell Kiểm tra SQL Server bằngWindows PowerShell – Phần 7Trong phần sáu chúng tôi đã giới thiệu cho các bạn cách kiểm tra trạng thái cơ sở dữliệu các thông tin về kích thước của cơ sở dữ liệu, còn trong phần này chúng tôi sẽ giớithiệu cho các bạn về cách lấy được các thông tin đó trên TOP 10 các truy vấn dựa trênhiệu suất CPU.Bước 1Đánh hoặc copy và paste đoạn mã dưới đây vào fileC:CheckSQLServerChecktopqueries.ps1.function checktopqueries([string] $servername){$SqlConnection = New-Object System.Data.SqlClient.SqlConnection$SqlCmd = New-Object System.Data.SqlClient.SqlCommand$SqlAdapter = New-Object System.Data.SqlClient.SqlDataAdapter$DataSet = New-Object System.Data.DataSet$SqlConnection.ConnectionString =Server=$servername;Database=master;Integrated Security=True$SqlCmd.CommandText = If LEFT(convert(varchar(100),SERVERPROPERTY(productversion)),1) in (9,1)beginselect Top 10 case when sql_handle IS NULLthen else ( substring(st.text,(qs.statement_start_offset+2)/2,(case when qs.statement_end_offset = -1then len(convert(nvarchar(MAX),st.text))*2else qs.statement_end_offsetend - qs.statement_start_offset) /2 ) )end as query_text,creation_time, last_execution_time,rank() over(order by (total_worker_time+0.0)/execution_count desc,sql_handle,statement_start_offset ) as row_no, (rank() over(order by (total_worker_time+0.0)/execution_count desc,sql_handle,statement_start_offset ))%2 as l1, (total_worker_time+0.0)/1000 as total_worker_time, (total_worker_time+0.0)/(execution_count*1000)as [AvgCPUTime], total_logical_reads as [LogicalReads], total_logical_writes as [LogicalWrites], execution_count, total_logical_reads+total_logical_writes as [AggIO], (total_logical_reads+total_logical_writes)/(execution_count+0.0) as [AvgIO], db_name(st.dbid) as db_name, st.objectid as object_idfrom sys.dm_exec_query_stats qscross apply sys.dm_exec_sql_text(sql_handle) stwhere total_worker_time > 0order by (total_worker_time+0.0)/(execution_count*1000)endelsebeginprint Server version is not SQL Server 2005 or above. Cant query TOP queriesend$SqlCmd.Connection = $SqlConnection$SqlAdapter.SelectCommand = $SqlCmd$SqlAdapter.Fill($DataSet)|out-null$dbs =$DataSet.Tables[0]$dbs$SqlConnection.Close()}Bước 2Gắn thêm vào file C:CheckSQLServerCheckSQL_Lib.ps1 đoạn mã sau.. ./checktopqueries.ps1Lúc này file C:CheckSQLServerCheckSQL_Lib.ps1 sẽ có pinghost, checkservices,checkhardware, checkOS, checkHD, checknet, checkinstance, Checkconfiguration vàcheckdatabases như thể hiện bên dưới.#Source all the functions relate to CheckSQL. ./PingHost.ps1. ./checkservices.ps1. ./checkhardware.ps1. ./checkOS.ps1. ./checkHD.ps1. ./checknet.ps1. ./checkinstance.ps1. ./checkconfiguration.ps1. ./checkdatabases.ps1. ./checktopqueries.ps1Lưu ý: File CheckSQL_Lib.ps1 này sẽ được cập nhật từ nguồn các kịch bản mới, chẳnghạn như checktopqueries.ps1.Bước 3Gắn thêm vào file C:CheckSQLServerCheckSQLServer.ps1 đoạn mã sau.Write-host Checking Top 10 Queries based on CPU Usage.Write-host .............................checktopqueries $instancename |select-object query_text, AvgCPUTime |format-tableCheckSQLServer.ps1 sẽ trở thành#Objective: To check various status of SQL Server#Host, instances and databases.#Author: MAK#Date Written: June 5, 2008param ([string] $Hostname,[string] $instancename)$global:errorvar=0. ./CheckSQL_Lib.ps1Write-host Checking SQL Server.....Write-host ........................Write-host Write-host Arguments accepted : $Hostnamewrite-host ........................Write-host Pinging the host machinewrite-host ........................pinghost $Hostnameif ($global:errorvar -ne host not reachable){Write-host Checking windows services on the host related to SQL Serverwrite-host ...........................................................checkservices $HostnameWrite-host Checking hardware Information.....Write-host ..................................checkhardware $HostnameWrite-host Checking OS Information.....Write-host .............................checkOS $HostnameWrite-host Checking HDD Information.....Write-host .............................checkHD $HostnameWrite-host Checking Network Adapter Information.....Write-host .........................................checknet $HostnameWrite-host Checking Configuration information.....Write-host .........................................checkconfiguration $instancename |format-tableWrite-host Checking Instance property Information.`....Write-host .............................checkinstance $instancename |format-tableWrite-host Checking SQL Server databases.....Write-host Checking Database status and size.....Write-host ......... ...

Tài liệu được xem nhiều: