ocp-047-128 什么时候用索引??

128. Evaluate the following SQL statement:
CREATE INDEX upper_name_idx ON product_information(UPPER(product_name));
这个索引是建立在函数上的索引,仅对查询到product_name列是不会使用索引的,必须用UPPER(product_name)才能使用该索引
Which query would use the UPPER_NAME_IDX index?
A. SELECT UPPER(product_name) FROM product_information WHERE product_id = 2254;
查询条件是product_id = 2254,和UPPER(product_name)没有任何关系
B. SELECT UPPER(product_name) FROM product_information;
索引的函数不再where条件中
C. SELECT product_id FROM product_information WHERE UPPER(product_name) IN ('LASERPRO', 'Cable');(right)
D. SELECT product_id, UPPER(product_name) FROM product_information WHERE UPPER(product_name)='LASERPRO' OR list_price > 1000;
因为list_price > 1000条件要做全表扫描,所以使用基于函数的索引没有任何意义,oracle会忽略索引直接全表扫描

D 不对么,用到就该算对呀。

你可能感兴趣的:(ocp考试)