次の定義を持つテーブルがあるとします。
create table consTest(c1 integer null constraint consTest1 check(c1 < 100),
c2 integer not null constraint consTestU1 unique,
c3 integer not null,
c4 integer null,
constraint consTest2 check(c2 > c1),
constraint consTestU2 unique(c3))
私のアプリケーションには、テーブル内の列の制約関係を記述するためにシステム テーブルに対して実行する次のクエリがあります。
SELECT object_schema_name(t17.referencing_id), object_name(t17.referencing_id),
coalesce(col_name(t17.referenced_id, t17.referenced_minor_id), NULL),
t16.definition, t16.type
FROM { oj sys.check_constraints t16 INNER JOIN sys.sql_expression_dependencies t17 ON ( t17.referencing_id = t16.object_id ) }
WHERE t17.referenced_id = object_id('consTest') AND
t16.type = 'C' AND
object_name(t17.referencing_id) = 'consTest2'
ORDER BY 1 ASC, 2 ASC, 3 ASC
このクエリを実行すると、SQL Server から断続的なクラッシュが発生することがあります。私の質問はクラッシュに関するものではありませんが、クエリに対して実行できる最適化を誰かが推奨できるかどうかを確認することです。