, 성능 문제가 SQLSERVER의 PSProvider와의 해결 경로의 구현에 실제로있다. Resolve-Path는 TabExpansion의 기본 구현 (Powershell v2에서)이 경로 완성을 수행하는 방법입니다.
이 문제를 해결하려면 TabExpansion 함수를 재정 의하여 Resolve-Path 대신 Get-ChildItem 및 Where-Object를 사용하면됩니다. 당신은 find the latest implementation in this bitbucket repo 일 수 있습니다.
function TabExpansion($line, $lastWord) {
if (!((get-location).Provider.Name -eq "SqlServer")) {
TabExpansionSqlPsBackup $line $lastWord
}
else {
$index = $lastWord.LastIndexOfAny(@('\', '/'))
if ($index -gt -1) {
$parent = $lastWord.substring(0, $index+1)
$leaf = $lastWord.substring($index+1)
}
else {
$parent = ""
$leaf = $lastWord
}
$matches = ls -path $parent | ?{ $_.PSChildName -match "^$leaf" }
if ($matches) {
$matches | %{ $parent + $_.PSChildName }
}
else {$lastWord}
}
}
넣어 문서 \의 WindowsPowerShell \ Microsoft.SqlServer.Management.PowerShell.sqlps_profile.ps1
\ ~에있는 SQLPS 프로파일 파일에서 기능 :
여기에 현재 구현입니다