Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Cara mengoptimalkan kueri Oracle yang memiliki to_char di mana klausa untuk tanggal

Jika Anda membuat rencana eksekusi untuk pertanyaan pertama Anda ...

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'
/

... Anda akan melihat bahwa ia melakukan pemindaian tabel penuh. Itu karena to_char() mencegah penggunaan indeks Anda pada CREATE DATE.

Anda tidak mengatakan berapa lama untuk mengembalikan hasil ketika Anda berlari ...

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')
/

... tapi saya kira itu jauh lebih dekat ke 0,14 detik daripada 4 menit.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Mendeklarasikan Variabel Sementara di Oracle Database

  2. Oracle SQl Dev, cara menghitung jumlah hari kerja antara 2 tanggal

  3. Excel VBA terhubung ke Oracle DB jarak jauh dengan InstantClient

  4. Bagaimana Cara Menginstal Oracle SQL Developer 18.2 di Windows 10?

  5. Oracle setara dengan fungsi SQL Server STUFF?