3

SQL Server でパーティション分割されたテーブルに対してクエリを実行する場合、何か特別なことをする必要がありますか?

私が質問している理由は、日ごとに「datetime2(2)」列で分割されたかなり大きな SQL Server テーブルがあるためです。

毎日が独自のファイル グループにマップされ、そのファイル グループ内のファイルにはLogs_2014-09-15.ndf.

このテーブルに対してクエリを実行すると、2 日間しかかからないということになります。ResourceMonitor で、SQL Server が 2 つ以上の日次.ndfファイルにアクセスしていることがわかります。(編集、実際、パーティション1に該当する日から選択したとしても、すべてを検索して検索したことに気付きました)

パーティション化されたテーブルに関する私の理解から、必要な適切なデータ/パーティションのみを検索する必要がありますか?

だから私の質問:

  1. これは事実ですか?
  2. DateTime2列を比較する方法はクエリに影響しますか?

    たとえば、次のようにクエリできます。

    select * from LogsTable
    where [date] like '2014-09-15'
    

    または私ができる:

    select * from LogsTable
    where [date] = CAST('2014-09-15'AS DATETIME2)
    
  3. 要素がクエリ内にある場合、パーティション関数は自動的に[time]要素を調べてから、SQL を正しいパーティションに送信しますか?

4

1 に答える 1