From d02c22a869c1691350105de53530b89937bfd332 Mon Sep 17 00:00:00 2001 From: Masayuki Ozawa Date: Wed, 26 Sep 2018 14:51:18 +0900 Subject: [PATCH] =?UTF-8?q?Simple=20Monitor=20=E3=81=AE=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...1\343\201\256\345\217\226\345\276\227.sql" | 10 ++- ...5\343\201\256\345\217\226\345\276\227.sql" | 8 +- ...1\343\201\256\345\217\226\345\276\227.sql" | 87 +++++++++++++------ ...3\201\256\345\217\226\345\276\227_Box.sql" | 8 +- ...3\201\256\345\217\226\345\276\227_Box.sql" | 9 +- ...1\343\201\256\345\217\226\345\276\227.sql" | 8 +- Simple Monitor/Simple Monitor.ps1 | 8 +- 7 files changed, 98 insertions(+), 40 deletions(-) diff --git "a/Simple Monitor/02.\343\203\207\343\203\274\343\202\277\343\202\242\343\202\257\343\202\273\343\202\271\347\212\266\346\263\201\343\201\256\345\217\226\345\276\227.sql" "b/Simple Monitor/02.\343\203\207\343\203\274\343\202\277\343\202\242\343\202\257\343\202\273\343\202\271\347\212\266\346\263\201\343\201\256\345\217\226\345\276\227.sql" index 4dfb8a6..7a9e6ab 100644 --- "a/Simple Monitor/02.\343\203\207\343\203\274\343\202\277\343\202\242\343\202\257\343\202\273\343\202\271\347\212\266\346\263\201\343\201\256\345\217\226\345\276\227.sql" +++ "b/Simple Monitor/02.\343\203\207\343\203\274\343\202\277\343\202\242\343\202\257\343\202\273\343\202\271\347\212\266\346\263\201\343\201\256\345\217\226\345\276\227.sql" @@ -1,8 +1,14 @@ SET NOCOUNT ON -- データアクセス状況の取得 -DROP TABLE IF EXISTS #T1 -DROP TABLE IF EXISTS #T2 +-- DROP TABLE IF EXISTS #T1 +-- DROP TABLE IF EXISTS #T2 + +IF (OBJECT_ID('tempdb..#T1') IS NOT NULL) + DROP TABLE #T1 +IF (OBJECT_ID('tempdb..#T2') IS NOT NULL) + DROP TABLE #T2 + SELECT GETDATE() counter_date, diff --git "a/Simple Monitor/03.\343\203\210\343\203\251\343\203\263\343\202\266\343\202\257\343\202\267\343\203\247\343\203\263\343\203\255\343\202\260\343\201\256\346\233\270\343\201\215\350\276\274\343\201\277\346\200\247\350\203\275\343\201\256\345\217\226\345\276\227.sql" "b/Simple Monitor/03.\343\203\210\343\203\251\343\203\263\343\202\266\343\202\257\343\202\267\343\203\247\343\203\263\343\203\255\343\202\260\343\201\256\346\233\270\343\201\215\350\276\274\343\201\277\346\200\247\350\203\275\343\201\256\345\217\226\345\276\227.sql" index e9407df..a1e0cec 100644 --- "a/Simple Monitor/03.\343\203\210\343\203\251\343\203\263\343\202\266\343\202\257\343\202\267\343\203\247\343\203\263\343\203\255\343\202\260\343\201\256\346\233\270\343\201\215\350\276\274\343\201\277\346\200\247\350\203\275\343\201\256\345\217\226\345\276\227.sql" +++ "b/Simple Monitor/03.\343\203\210\343\203\251\343\203\263\343\202\266\343\202\257\343\202\267\343\203\247\343\203\263\343\203\255\343\202\260\343\201\256\346\233\270\343\201\215\350\276\274\343\201\277\346\200\247\350\203\275\343\201\256\345\217\226\345\276\227.sql" @@ -1,8 +1,12 @@ SET NOCOUNT ON -- トランザクションログの書き込み状況 -DROP TABLE IF EXISTS #T1 -DROP TABLE IF EXISTS #T2 +-- DROP TABLE IF EXISTS #T1 +-- DROP TABLE IF EXISTS #T2 +IF (OBJECT_ID('tempdb..#T1') IS NOT NULL) + DROP TABLE #T1 +IF (OBJECT_ID('tempdb..#T2') IS NOT NULL) + DROP TABLE #T2 SELECT GETDATE() counter_date, diff --git "a/Simple Monitor/07.\345\276\205\343\201\241\344\272\213\350\261\241\343\201\256\346\203\205\345\240\261\343\201\256\345\217\226\345\276\227.sql" "b/Simple Monitor/07.\345\276\205\343\201\241\344\272\213\350\261\241\343\201\256\346\203\205\345\240\261\343\201\256\345\217\226\345\276\227.sql" index 4e3b4fe..230029a 100644 --- "a/Simple Monitor/07.\345\276\205\343\201\241\344\272\213\350\261\241\343\201\256\346\203\205\345\240\261\343\201\256\345\217\226\345\276\227.sql" +++ "b/Simple Monitor/07.\345\276\205\343\201\241\344\272\213\350\261\241\343\201\256\346\203\205\345\240\261\343\201\256\345\217\226\345\276\227.sql" @@ -1,32 +1,67 @@ SET NOCOUNT ON - -SELECT - GETDATE() as counter_date, - counter_name, - [Average wait time (ms)], - [Waits in progress], - [Waits started per second], - [Cumulative wait time (ms) per second] -FROM - ( +IF (SERVERPROPERTY('ProductMajorVersion') IS NOT NULL) +BEGIN SELECT - RTRIM(instance_name) AS instance_name, - RTRIM(counter_name) AS counter_name, - cntr_value - FROM - sys.dm_os_performance_counters - WHERE - object_name like '%Wait Statistics%' - ) AS T -PIVOT -( - SUM(cntr_value) - FOR instance_name - IN( + GETDATE() as counter_date, + counter_name, [Average wait time (ms)], [Waits in progress], [Waits started per second], [Cumulative wait time (ms) per second] - ) -) AS PVT -ORDER BY counter_name \ No newline at end of file + FROM + ( + SELECT + RTRIM(instance_name) AS instance_name, + RTRIM(counter_name) AS counter_name, + cntr_value + FROM + sys.dm_os_performance_counters + WHERE + object_name like '%Wait Statistics%' + ) AS T + PIVOT + ( + SUM(cntr_value) + FOR instance_name + IN( + [Average wait time (ms)], + [Waits in progress], + [Waits started per second], + [Cumulative wait time (ms) per second] + ) + ) AS PVT + ORDER BY counter_name +END +ELSE +BEGIN + SELECT + GETDATE() as counter_date, + counter_name, + [平均待機時間 (ミリ秒)] AS [Average wait time (ms)], + [待機中] AS [Waits in progress], + [1 秒あたりに開始された待機回数] AS [Waits started per second], + [1 秒あたりの累積待機時間 (ミリ秒)] AS [Cumulative wait time (ms) per second] + FROM + ( + SELECT + RTRIM(instance_name) AS instance_name, + RTRIM(counter_name) AS counter_name, + cntr_value + FROM + sys.dm_os_performance_counters + WHERE + object_name like '%Wait Statistics%' + ) AS T + PIVOT + ( + SUM(cntr_value) + FOR instance_name + IN( + [平均待機時間 (ミリ秒)], + [待機中], + [1 秒あたりに開始された待機回数], + [1 秒あたりの累積待機時間 (ミリ秒)] + ) + ) AS PVT + ORDER BY counter_name +END \ No newline at end of file diff --git "a/Simple Monitor/08.\343\203\225\343\202\241\343\202\244\343\203\253 IO \343\201\256\345\217\226\345\276\227_Box.sql" "b/Simple Monitor/08.\343\203\225\343\202\241\343\202\244\343\203\253 IO \343\201\256\345\217\226\345\276\227_Box.sql" index c48f5f3..84c2b12 100644 --- "a/Simple Monitor/08.\343\203\225\343\202\241\343\202\244\343\203\253 IO \343\201\256\345\217\226\345\276\227_Box.sql" +++ "b/Simple Monitor/08.\343\203\225\343\202\241\343\202\244\343\203\253 IO \343\201\256\345\217\226\345\276\227_Box.sql" @@ -1,8 +1,12 @@ SET NOCOUNT ON -- ファイル I/O の取得 -DROP TABLE IF EXISTS #T1 -DROP TABLE IF EXISTS #T2 +-- DROP TABLE IF EXISTS #T1 +-- DROP TABLE IF EXISTS #T2 +IF (OBJECT_ID('tempdb..#T1') IS NOT NULL) + DROP TABLE #T1 +IF (OBJECT_ID('tempdb..#T2') IS NOT NULL) + DROP TABLE #T2 SELECT GETDATE() AS counter_date, diff --git "a/Simple Monitor/10.DMV \343\201\256\345\276\205\343\201\241\344\272\213\350\261\241\343\201\256\346\203\205\345\240\261\343\201\256\345\217\226\345\276\227_Box.sql" "b/Simple Monitor/10.DMV \343\201\256\345\276\205\343\201\241\344\272\213\350\261\241\343\201\256\346\203\205\345\240\261\343\201\256\345\217\226\345\276\227_Box.sql" index 7344817..6ced396 100644 --- "a/Simple Monitor/10.DMV \343\201\256\345\276\205\343\201\241\344\272\213\350\261\241\343\201\256\346\203\205\345\240\261\343\201\256\345\217\226\345\276\227_Box.sql" +++ "b/Simple Monitor/10.DMV \343\201\256\345\276\205\343\201\241\344\272\213\350\261\241\343\201\256\346\203\205\345\240\261\343\201\256\345\217\226\345\276\227_Box.sql" @@ -1,5 +1,10 @@ -DROP TABLE IF EXISTS #T1 -DROP TABLE IF EXISTS #T2 +-- DROP TABLE IF EXISTS #T1 +-- DROP TABLE IF EXISTS #T2 +IF (OBJECT_ID('tempdb..#T1') IS NOT NULL) + DROP TABLE #T1 +IF (OBJECT_ID('tempdb..#T2') IS NOT NULL) + DROP TABLE #T2 + SELECT GETDATE() AS counter_date, diff --git "a/Simple Monitor/11.\345\217\257\347\224\250\346\200\247\343\202\260\343\203\253\343\203\274\343\203\227\343\201\256\350\244\207\350\243\275\346\203\205\345\240\261\343\201\256\345\217\226\345\276\227.sql" "b/Simple Monitor/11.\345\217\257\347\224\250\346\200\247\343\202\260\343\203\253\343\203\274\343\203\227\343\201\256\350\244\207\350\243\275\346\203\205\345\240\261\343\201\256\345\217\226\345\276\227.sql" index 324bb78..38e94b8 100644 --- "a/Simple Monitor/11.\345\217\257\347\224\250\346\200\247\343\202\260\343\203\253\343\203\274\343\203\227\343\201\256\350\244\207\350\243\275\346\203\205\345\240\261\343\201\256\345\217\226\345\276\227.sql" +++ "b/Simple Monitor/11.\345\217\257\347\224\250\346\200\247\343\202\260\343\203\253\343\203\274\343\203\227\343\201\256\350\244\207\350\243\275\346\203\205\345\240\261\343\201\256\345\217\226\345\276\227.sql" @@ -1,5 +1,9 @@ -DROP TABLE IF EXISTS #T1 -DROP TABLE IF EXISTS #T2 +-- DROP TABLE IF EXISTS #T1 +-- DROP TABLE IF EXISTS #T2 +IF (OBJECT_ID('tempdb..#T1') IS NOT NULL) + DROP TABLE #T1 +IF (OBJECT_ID('tempdb..#T2') IS NOT NULL) + DROP TABLE #T2 SELECT GETDATE() AS counter_date, diff --git a/Simple Monitor/Simple Monitor.ps1 b/Simple Monitor/Simple Monitor.ps1 index 89fdb3b..3d02066 100644 --- a/Simple Monitor/Simple Monitor.ps1 +++ b/Simple Monitor/Simple Monitor.ps1 @@ -1,10 +1,10 @@ [CmdletBinding()] param( - $server = "", + $server = "localhost", $user = "", $password = "", $outputdir = "C:\Simple Monitor", - $database = "", + $database = "master", $interval = 5, $isAzure = $false, $isPDW = $false @@ -16,7 +16,7 @@ Clear-Host Write-Output "Press Ctrl+C to exit." # PS1 と同じディレクトリ内の SQL ファイルを実行する -# Box と SQL Database でし応するクエリが異なる場合、Box or Azure のファイル名で使い分ける +# Box と SQL Database で使用するクエリが異なる場合、Box or Azure のファイル名で使い分ける if ($isPDW){ $sqllist = Get-ChildItem -Path (Split-Path $MyInvocation.MyCommand.Path -Parent) | ? Name -Match "^[0-9].*sql" | ? Name -Like "*PDW*" }elseif($isAzure){ @@ -50,7 +50,7 @@ while($true){ # PBI Desktop でオリジナルのファイルを読み込むと、ファイルロックしてしまうことがあるので、二次ディレクトリに退避し、PBI Desktop ではそちらにアクセス Copy-Item (Join-Path $outfilepath $outfile) (Join-Path $outputdir "Results") -Force }catch{ - Write-Host ("{0}:{1}"-f (Get-Date),$Error[0].Exception.Message) + Write-Host ("{0}:[{1}]:{2}"-f (Get-Date), $sqlfile, $Error[0].Exception.Message) } }