我正在使用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);
我GOOGLE了這一點,並沒有發現關於速度的任何投訴,所以我不知道如果我做錯了什麼。
是否有任何機會,你可以修復產生SQL片?否則,組裝儀器是最好的選擇。 – 2013-03-05 16:27:35
只是爲了澄清;上面的代碼中的最後一行顯着較慢。其他一切,甚至是重寫SQL的代碼,似乎都表現得很好。我會看看我是否可以在今天晚些時候發佈更多代碼,以更好地說明我所看到的內容。 – 2013-03-05 16:33:53
使用Stopwatch類我能夠捕獲解析我的測試SQL所需的時間與解析後重寫SQL所需的時間。如果我的數學是正確的解析花了516.83毫秒和重寫SQL花了1.93毫秒。測試環境是Windows 7 64bit,因此Stopwatch具有高分辨率。 – 2013-03-06 20:38:26