1

一連のパフォーマンス カウンターを収集し、それらを SQL サーバーのログ ファイルに格納する Powershell スクリプトがあります。

現在、このログの出力には次の列が含まれています。PDHCSV40EasternDaylightTime240

これにより、MM:SS.ms がその列にプッシュされますが、時間または日付が表示されないため、1 時間後に収集されたカウンターはほとんど役に立たなくなります。

Powershell スクリプトでその列の形式を変更する方法はありますか? 最終的に、ログは .csv に保存されます。これをクリーンアップし、LogParser 2.2 を呼び出す .bat ファイルを使用して SQL に送り込みます。そのため、SQL スクリプトを使用して、RowNumber に基づいて日時を作成できる可能性があります。

実際にログを作成するコードは次のとおりです。

$Folder="C:\Perflogs\SQLLogs" # Change the bit in the quotation marks to whatever directory you want the log file stored in

$Computer = $env:COMPUTERNAME
$1GBInBytes = 1GB
$p = "TONS OF COUNTERS";

# If you want to change the performance counters, change the above list. However, these are the recommended counters for a SQL machine. 

$date = Get-Date -Format 'MM_dd_yyyy HH_mm_ss'
$file = "$Folder\SQL_log_$date.csv"

if( !(test-path $folder)) {New-Item $Folder -type directory}

Get-Counter -counter $p -SampleInterval 60 -Continuous | export-counter -Path $File -FileFormat CSV
4

2 に答える 2

1

スクリプトの最後の行を実行すると、日付/月/年などを取得できます。私は何かが恋しいですか?

PS C:\Documents\ManualScripts> get-counter -counter "\processor(_total)\% processor time" -SampleInterval 5 -Continuous
| Export-Counter -path .\Test-files\counter -FileFormat csv

エクスポートされたファイルの内容:

PS C:\Documents\ManualScripts> get-content .\Test-files\counter
"(PDH-CSV 4.0) (Eastern Daylight Time)(240)","\\win2012-2\processor(_total)\% processor time"
"06/18/2013 14:48:00.742"," "
"06/18/2013 14:48:05.843","9.1628941466886715"
"06/18/2013 14:48:10.910","9.4105840748880283"
"06/18/2013 14:48:15.953","14.770849818884757"
"06/18/2013 14:48:20.993","12.40314193479044"
"06/18/2013 14:48:26.043","22.617568840081649"
"06/18/2013 14:48:31.086","21.901970809646333"
"06/18/2013 14:48:36.203","10.671110542619488"
"06/18/2013 14:48:41.243","17.654344180766689"
"06/18/2013 14:48:46.277","16.714921378494417"
"06/18/2013 14:48:51.318","10.501397411247293"
"06/18/2013 14:48:56.359","10.875155019759863"
于 2013-06-18T18:59:24.453 に答える
0

.csv を作成した後、干渉なしで Powershell スクリプトを実行すると、必要な日時の形式になったと判断したため、.csv を SQL にロードする前にクリーンアップする方法に問題があります。

于 2013-06-18T18:46:51.743 に答える