sql >> データベース >  >> RDS >> Sqlserver

SQL Serverは、日時をnull以外と比較するインデックスを使用しません

    これは正常です。述語がそれを正当化するのに十分選択的でない限り、それはインデックスを使用しません。

    レコードの大部分はNULLではないようです。したがって、クラスター化されていないインデックスを介してこれらを見つける代わりに、ブックマークルックアップとランダムI / Oをロードして残りの列を取得し、それを返す必要があります。クラスター化インデックス全体をスキャンするだけです。

    FORCESEEKを使用できます あなたが望む行動を強制するために。クラスター化されたインデックススキャンと比較して、所要時間とI/O統計が屋根を通過していることに気付くでしょう。

    SET STATISTICS IO ON
    
    SELECT * FROM 
    YourTable WITH (FORCESEEK) 
    WHERE YourCol IS NOT NULL
    


    1. MySQL:行の値の一意のペアをカウントします

    2. Rust:多くのパラメータを使用してMySQLでDMLを実行するにはどうすればよいですか?

    3. SQLException:適切なドライバーが見つかりません

    4. mysqlエラーログに日付を追加する方法