Microsoft.Data.Schema.ScriptDom 및 Microsoft.Data.Schema.ScriptDom.Sql 라이브러리를 사용하여 SQL을 구문 분석하고 SQL SELECT 문에 "TOP #"을 추가합니다. 특정 상황에서 결과 집합을 제한하기 위해이 작업을 수행합니다.Microsoft.Data.Schema.ScriptDom 구문 분석기의 속도
방금 라이브러리를 사용하기 시작했고 SQL을 구문 분석하는 것이 정확히 빠르지 않은 것으로 나타났습니다. 나는 실제로 속도를 측정하기위한 코드를 사용하지 않았지만 두 번째와 반 사이의 속도가 눈에 띈다. 어느 것이 끔찍한 것이 아니라 빨리 부르지 않을 것입니다.
내 코드는 다음과 같습니다 :이 봤 내가 뭔가를 잘못하고 있어요 그래서 만약 내가 궁금하네요 속도에 대한 불만을 찾을 수없는 한
var Parser = new TSql100Parser(true);
TextReader reader = new StringReader(sql);
IList<ParseError> errors;
var fragments = Parser.Parse(reader, out errors);
.
SQL을 생성하는 부분을 해결할 수있는 기회를 당신이 있습니까 ? 그렇지 않으면 어셈블리를 계측하는 것이 최선의 방법입니다. –
그냥 명확하게; 위의 코드에서 마지막 줄은 눈에 띄게 느립니다. SQL을 다시 작성하는 코드 라 할지라도 모든 것이 잘 수행되는 것 같습니다. 오늘 내가 나중에보고있는 것을 더 잘 보여주는 코드를 나중에 게시 할 수 있는지 확인해 보겠습니다. –
Stopwatch 클래스를 사용하여 필자는 테스트 SQL을 구문 분석하는 데 필요한 시간과 구문 분석 후 SQL을 다시 작성하는 데 필요한 시간을 캡처 할 수있었습니다. 제 계산이 정확하다면 파싱은 516.83ms 였고 SQL을 다시 작성하는 데는 1.93ms가 걸렸습니다. 테스트 환경은 Windows 7 64bit이므로 Stopwatch는 고해상도입니다. –