2013-06-19 5 views
1

SQLPS 탭 확장 (탭 완료)이 너무 느리며 완전히 사용할 수 없습니다. 구성에 문제가 있습니까? 어떻게 든 업그레이드해야하는 최신 버전이 있습니까? 이것을 사용할 수있게하는 문제가 있습니까?SQLPS 탭 완료가 매우 느립니다.

관련 버전 정보 :

  • 는 Windows7 64 비트
  • SQL 서버 2008
  • SQL Server Management Studio를 10.0.5512.0
  • SQLPS.exe의 FileVersion (10.0.1600.22 ((SQL_PreRelease). 080709-1414)
  • SQLPS, $의 psversiontable :
    • CLRVERSION : 2.0.50727.5466
    • BuildVersion : 6.1.7601.17514
    • PSVersion : 2.0로 근처 내가 말할 수있는

답변

1

, 성능 문제가 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 프로파일 파일에서 기능 :

여기에 현재 구현입니다