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

Bagaimana cara menggunakan indeks berbasis fungsi pada kolom yang berisi NULL di Oracle 10+?

Indeks dapat digunakan, meskipun pengoptimal mungkin memilih untuk tidak menggunakannya untuk contoh khusus Anda:

SQL> create table my_objects
  2  as select object_id, object_name
  3  from all_objects;

Table created.

SQL> select count(*) from my_objects;
  2  /

  COUNT(*)
----------
     83783


SQL> alter table my_objects modify object_name null;

Table altered.

SQL> update my_objects
  2  set object_name=null
  3  where object_name like 'T%';

1305 rows updated.

SQL> create index my_objects_name on my_objects (lower(object_name));

Index created.

SQL> set autotrace traceonly

SQL> select * from my_objects
  2  where lower(object_name) like 'emp%';

29 rows selected.


Execution Plan
----------------------------------------------------------

------------------------------------------------------------------------------------
| Id  | Operation                   | Name            | Rows  | Bytes | Cost (%CPU)|
------------------------------------------------------------------------------------
|   0 | SELECT STATEMENT            |                 |    17 |   510 |   355   (1)|
|   1 |  TABLE ACCESS BY INDEX ROWID| MY_OBJECTS      |    17 |   510 |   355   (1)|
|*  2 |   INDEX RANGE SCAN          | MY_OBJECTS_NAME |   671 |       |     6   (0)|
------------------------------------------------------------------------------------

Dokumentasi yang Anda baca mungkin menunjukkan bahwa, sama seperti indeks lainnya, kunci semua-null tidak disimpan dalam indeks.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Masukkan beberapa baris dari R Dataframe ke Oracle Database

  2. Daftar Tanggal + Jam antara dua tanggal

  3. rumus pengisian kueri oracle sql

  4. cara mendapatkan kolom seperti rowNum di sqlite IPHONE

  5. Proses peningkatan langkah demi langkah untuk R12.2 Upgrade Bagian -4 (Menerapkan Paket Pembaruan Rilis 12.2.x)