3

Microsoft.Data.Schema.ScriptDom および Microsoft.Data.Schema.ScriptDom.Sql ライブラリを使用して SQL を解析し、S​​QL 選択ステートメントに "TOP #" を追加しています。これは、特定の状況で結果セットを制限するために行います。

ライブラリの使用を開始したばかりで、SQL の解析が正確に高速ではないことに気付きました。実際に速度を測定するためにコードを計測していませんが、0.5 秒から 1 秒の間で目立ちます。これはひどいことではありませんが、速いとは言えません。

私のコードは次のようになります。

  var Parser = new TSql100Parser(true);      
  TextReader reader = new StringReader(sql);
  IList<ParseError> errors;
  var fragments = Parser.Parse(reader, out errors);

私はこれをグーグルで検索しましたが、速度に関する苦情は見つからなかったので、何か間違っているのではないかと思っています.

4

1 に答える 1

3

Microsoft のライブラリは、高速と呼ばれるものではないようです。私はさらにいくつかのグーグル検索を行いましたが、この問題を目にしたのは私だけではありません。本当に SQL を解析する必要がある場合は、いくつかの代替手段があります。Microsoft のライブラリの機能はありませんが、うまく機能しているようです。

ゴールド解析システム

貧乏人の T-SQL フォーマッタ

于 2013-03-12T19:00:28.727 に答える