SQL Server でパーティション分割されたテーブルに対してクエリを実行する場合、何か特別なことをする必要がありますか?
私が質問している理由は、日ごとに「datetime2(2)」列で分割されたかなり大きな SQL Server テーブルがあるためです。
毎日が独自のファイル グループにマップされ、そのファイル グループ内のファイルにはLogs_2014-09-15.ndf.
このテーブルに対してクエリを実行すると、2 日間しかかからないということになります。ResourceMonitor で、SQL Server が 2 つ以上の日次.ndfファイルにアクセスしていることがわかります。(編集、実際、パーティション1に該当する日から選択したとしても、すべてを検索して検索したことに気付きました)
パーティション化されたテーブルに関する私の理解から、必要な適切なデータ/パーティションのみを検索する必要がありますか?
だから私の質問:
- これは事実ですか?
DateTime2列を比較する方法はクエリに影響しますか?たとえば、次のようにクエリできます。
select * from LogsTable where [date] like '2014-09-15'または私ができる:
select * from LogsTable where [date] = CAST('2014-09-15'AS DATETIME2)要素がクエリ内にある場合、パーティション関数は自動的に
[time]要素を調べてから、SQL を正しいパーティションに送信しますか?