一連のパフォーマンス カウンターを収集し、それらを 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