以前SQLServer2000の時代、ADO.NETから長いSQL(whereのin条件をたくさん書いている)を実行し、8000byte付近を越えるとエラーになって困っている人がいました。
それを聞いたとき、「そんなSQLって...。作りがおかしい」と思っていました。それは今も変わりません。
アレから、数年たちました。SQLServerも2008にバージョンがあがりました。で先日「はて、今はどれくらいの長さのSQLが投げれるんだろ?」とおもい調べてみました。
調べてみるとSQL Server の最大容量仕様のバッチ サイズがソレにあたります。「65,535*パケットサイズ」って書いてあるんですが、パケットサイズは標準で4KBなので、262,140KBまでいける?ってことでしょうか。
・・・何か勘違いしている気が。。。
とはいえ、INSERTをバッチクエリで処理したい場合、相当長い文が投げれることになります。
パフォーマンス的には効果が出そうですね。
0 件のコメント:
コメントを投稿