Thứ Năm, 10 tháng 12, 2020

Cách tạo FUNCTION INDEX trong Oracle Database


1. Tạo index tăng tốc độ truy vấn tên nhân viên:
Câu lệnh:
SELECT * FROM emp WHERE UPPER(emp_name) LIKE 'JOH%';

Tạo index:
CREATE INDEX idx ON emp (UPPER(emp_name));

Câu lệnh
SELECT id, geo, area(geo), desc
     FROM rivers     
     WHERE area(geo) >5000

Tạo index:
CREATE INDEX area_index ON rivers (area(geo));


2. Với câu lệnh truy vấn trên biểu thức:
SELECT a FROM t WHERE a + b * (c - 1) < 100;

CREATE INDEX idx ON t (a + b * (c - 1), a, b);

SELECT   employee_id, last_name, first_name, 
         12*salary*commission_pct AS "ANNUAL SAL"
FROM     employees
WHERE    (12 * salary * commission_pct) < 30000
ORDER BY "ANNUAL SAL" DESC;
EMPLOYEE_ID LAST_NAME                 FIRST_NAME           ANNUAL SAL
----------- ------------------------- -------------------- ----------
        159 Smith                     Lindsey                   28800
        151 Bernstein                 David                     28500
        152 Hall                      Peter                     27000
        160 Doran                     Louise                    27000
        175 Hutton                    Alyssa                    26400
        149 Zlotkey                   Eleni                     25200
        169 Bloom                     Harrison                  24000

CREATE INDEX emp_total_sal_idx
  ON employees (12 * salary * commission_pct, salary, commission_pct);


3. Tạo index hỗ trợ sắp xếp chuỗi ký tự dựa trên ngôn ngữ của từng quốc gia:
SELECT * FROM t_table ORDER BY name;

CREATE INDEX nls_index ON t_table NLSSORT(name, 'NLS_SORT = German'));

4. Sử dụng index trên nhiều cột khác nhau:
SELECT * FROM emp 
WHERE UPPER(emp_name) LIKE 'JOH%' 
ORDER BY name;

CREATE INDEX empi ON emp UPPER ((ename), NLSSORT(ename));

----
SELECT * 
FROM   employees
WHERE  UPPER(first_name) = 'AUDREY';

CREATE INDEX emp_fname_uppercase_idx 
ON employees ( UPPER(first_name) ); 

5.CASE

CREATE INDEX cust_valid_idx
ON customers ( CASE cust_valid WHEN 'A' THEN 'A' END );


KẾT NỐI VỚI CHUYÊN GIA TRẦN VĂN BÌNH: 📧 Mail: binhoracle@gmail.com ☎️ Mobile: 0902912888 ⚡️ Skype: tranbinh48ca 👨 Facebook: https://www.facebook.com/BinhOracleMaster 👨 Inbox Messenger: https://m.me/101036604657441 (profile) 👨 Fanpage: https://www.facebook.com/tranvanbinh.vn 👨 Inbox Fanpage: https://m.me/tranvanbinh.vn 👨👩 Group FB: https://www.facebook.com/groups/OracleDBAVietNam 👨 Website: http://www.tranvanbinh.vn 👨 Blogger: https://tranvanbinhmaster.blogspot.com 🎬 Youtube: http://bit.ly/ytb_binhoraclemaster 👨 Tiktok: https://www.tiktok.com/@binhoraclemaster?lang=vi 👨 Linkin: https://www.linkedin.com/in/binhoracle 👨 Twitter: https://twitter.com/binhoracle 👨 Địa chỉ: Tòa nhà Sun Square - 21 Lê Đức Thọ - Phường Mỹ Đình 1 - Quận Nam Từ Liêm - TP.Hà Nội #OracleTutorial #OracleDBA #OracleDatabaseAdministration #học oracle database #oca #ocp #oce #ocm

ĐỌC NHIỀU

Trần Văn Bình - Oracle Database Master