私の現在の目標は動的選択の作成とクエリです。私たちの場合、我々は参照テーブルを持っています。参照テーブルには、参照列の値とテーブル名が含まれます。これらの参照を持つ他のテーブルに対して動的クエリを作成します。例:大規模な動的選択とクエリのベストプラクティスは何ですか
select * from {table} where {pk1} in (...) and {pk2} in {...}
この生成されたクエリに問題がありました。いくつかの行は結果の戻り値ですが、問合せが異なる条件であるため問合せには含まれません。
変更SQL生成ここでは、この
select * from {table} where ({pk1}=(value1) and {pk2}=(value2)) or ({pk1}=(value3) and {pk2}=(value4)) ...)
を好きに問題が解決しますが、クエリの実行時間は、代わりに「IN」クエリの良くないました。それは約10-20倍遅くなります。クエリ文字列が "IN"クエリではなく大きすぎます。
各テーブルに対して新しいTYPEを動的に作成することはできず、列は同じ型と順序ではないため、テーブル型のクエリは使用できません。将来、新しいテーブルタイプが挿入される可能性があります。
これを実行するベストプラクティスは何ですか?
よろしく
"in"句にはどれくらいの値がありますか?たとえば、(1,2,3、......、10000)の{pk1} –
これは参照先の表に依存します。現在1つのテーブルの最大行数は約50kです。 –