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

日付のwhere句にto_charが含まれるOracleクエリを最適化する方法

    実行プランを生成する> 最初のクエリについて...

    explain plan for 
    SELECT bunch,of,stuff,create_date
    FROM myTable
    WHERE TO_CHAR (create_date,'MM/DD/YYYY)' >= '04/10/2010'
    AND TO_CHAR (create_date, 'MM/DD/YYYY') <= '04/10/2010'
    /
    

    ...全表スキャンを実行していることがわかります。これは、to_char() CREATEDATEでのインデックスの使用を防ぎます。

    実行したときに結果が返されるまでにどれくらいの時間がかかったかはわかりません...

    SELECT bunch,of,stuff,create_date
    FROM myTable
    WHERE             
    create_date >= to_timestamp('04/10/2010 00:00:00.000000','MM/DD/YYYY HH24:MI:SS.FF') 
    AND 
    create_date <= to_timestamp('04/10/2010 23:59:59:123000','MM/DD/YYYY HH24:MI:SS.FF')
    /
    

    ...しかし、4分よりも0.14秒にはるかに近いと思います。



    1. django 1.10の全文検索で`unaccent`をどのように使用しますか?

    2. 2番目のテーブルの行を繰り返し処理して、結果セットを返します

    3. SSRS でルックアップを合計する

    4. JDBCPreparedStatementでMySQL構文エラーが発生する