テーブルの列名の一覧を得るのに時間がかかるときは

テーブルに900列もあると、テーブルの列名の一覧を得るのにえらく時間がかかってしまう。数秒から10秒くらい待たされる(体感)。


仕方が無いのでSQLを工夫する。このとき、テーブルの列名の一覧を得るのに使っていたのは、次のようなSQLだった。

select name from sys.columns where OBJECT_NAME(object_id) = 'aテスト成績'

これを関数呼び出しが1回で済むように書き換える。

select name from sys.columns where [object_id] = OBJECT_id('aテスト成績')

これで一瞬で結果が返ってくるようになった。素晴らしい。

教訓

900列もあるテーブルを作ってはいけない。

コメント

このブログの人気の投稿

varchar をデータ型 numeric に変換中に、算術オーバーフロー エラーが発生しました。