数据库应用技术

创建哪一项会使以下语句的执行速度更快() SELECT * FROM employees WHERE LOWER(last_name) = 'chang'.A、同义词B、一个索引,普通索引或基于函数的索引C、组合索引D、不创建任何项;无法提高此语句的性能

题目

创建哪一项会使以下语句的执行速度更快() SELECT * FROM employees WHERE LOWER(last_name) = 'chang'.

  • A、同义词
  • B、一个索引,普通索引或基于函数的索引
  • C、组合索引
  • D、不创建任何项;无法提高此语句的性能
如果没有搜索结果,请直接 联系老师 获取答案。
如果没有搜索结果,请直接 联系老师 获取答案。
相似问题和答案

第1题:

下列关于SQL语言索引(index)的叙述中,哪一条是不正确的?

A.系统在存取数据时会自动选择合适的索引作为存取路径

B.使用索引可以加快查询语句的执行速度

C.一个基本表上可以创建多个索引

D.索引是外模式


正确答案:D
解析:外模式也称子模式或用户模式,它是数据库用户能够看见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图,是与某一应用有关的数据的逻辑表示。

第2题:

如果经常执行类似于下面的查询语句SELECT * FROM STUDENT where substr(sname,0,2)=’陈’,应该为STUDENT表的SNAME列创建()索引。

A.B树唯一索引

B.B树不唯一索引

C.基于函数的索引

D.位图索引


参考答案:C

第3题:

假定分别在“职工”关系中的“年龄”和“月工资”字段上创建了索引,如下的 Select查询语句可能不会促使查询优化器使用索引,从而降低了查询效率,请写出既可以完成相同功能又可以提高查询效率的SQL语句。

SELECT 姓名,年龄,月工资 FROM职工

WHERE 年龄>45 OR月工资<1000;


正确答案:此问主要考察在查询中注意WHERE子句中使用索引的问题。既可以完成相同功能又可以提高查询效率的SQL语句如下: (SELECT 姓名年龄月工资 FROM 职工 WHERE 年龄>45) UNION (SELECT 姓名年龄月工资 FROM 职工 WHERE 月工资1000);
此问主要考察在查询中注意WHERE子句中使用索引的问题。既可以完成相同功能又可以提高查询效率的SQL语句如下: (SELECT 姓名,年龄,月工资 FROM 职工 WHERE 年龄>45) UNION (SELECT 姓名,年龄,月工资 FROM 职工 WHERE 月工资1000);

第4题:

评估以下语句:CREATE.INDEX.sales_idx.ON.oe.销售(状态);以下哪个说法是的()

  • A、CREATEINDEX会创建一个基于函数的索引
  • B、CREATEINDEX语句会创建一个非唯一索引
  • C、CREATEINDEX语句会创建一个唯一索引
  • D、因为语法错误,CREATEINDEX语句将失败

正确答案:B

第5题:

为提交SQL语句的执行效率,可在相应的表上创建索引。根据问题3中的SQL语句,除主键和外键外,还需要在哪个表的哪些属性上创建索引,应该创建什么类型的索引,请说明原因。


正确答案:表:住宿 属性:入住日期 类型:聚簇索引或聚集索引或cluster 原因:表中记录的物理顺序与索引项的顺序一致根据索引访问数据时一次读取操作可以获取多条记录数据因而可减少查询时间。
表:住宿 属性:入住日期 类型:聚簇索引,或聚集索引,或cluster 原因:表中记录的物理顺序与索引项的顺序一致,根据索引访问数据时,一次读取操作可以获取多条记录数据,因而可减少查询时间。 解析:该题主要考查索引的概念。在数据库中,索引使数据库程序无需对整个表进行扫描,就可以从其中找到所需的数据。索引分为两类:聚集索引和非聚集索引。聚集索引对表的物理数据页中的数据按列进行排序,然后重新存储到磁盘上,即聚集索引与数据是混为一体的,其叶结点中存储的是实际的数据。非聚集索引具有完全独立于数据行的结构,使用非聚集索引不用将物理数据页中的数据按列排序。非聚集索引的叶结点存储的是组成非聚集索引的关键字值和行定位器。
按题目要求,查询涉及的属性有身份证号和入住日期,但它们均为主键属性,故不需要再为其他属性创建索引。针对本题要求为提交SQL语句的执行效率,对“入住日期”属性建立聚集索引,使得索引项顺序和物理数据顺序一致以提高查询性能。
问题3中查询涉及到的属性有身份证号和入住日期,由于这两个属性均为住宿关系的主键,故不需要再在其他属性上创建索引。在主键上创建的索引类型应为聚簇索引(或聚集索引或cluster)。创建聚簇索引的原因是令表中记录的物理顺序与索引项的顺序一致,根据索引访问数据时,一次读取操作可以获取多条记录数据,因而可减少查询时间。

第6题:

若系统使用频度最高的查询语句为SELECT*FROMSC WHERE Sno=x AND Cno=y;//其中x,y为变量为使该查询语句的执行效率最高,应创建()。

A.Sno上的索引

B.Cno上的索引

C.Sno,Cno上的索引

D.SC上的视图SC_V(Sno,Cno)


正确答案:C

第7题:

如果创建的表其主键可以自动编号,则应该为主键创建的索引是()索引。

A.反向索引

B.B树索引

C.位图索引

D.基于函数的索引


参考答案:A

第8题:

②为了提高查询性能,数据库管理员在Students表的SName列上建立了一个非聚集索引SName _ind。如果应用程序使用如下语句查询数据:

SELECT*FROM Students WHERE SName like‘%华’

请问SName_ind索引是否能够提高语句的查询速度,并给出原因。


正确答案:②此索引不能提高该语句的查询速度。因为该索引是建立在SNAME上的非聚集索引以SNAME首字母排序而查询语句却要求查询名字最后一个是“华”的SNAME还是需要全部扫描students表.因此不能提高该语句的查询速度。
②此索引不能提高该语句的查询速度。因为该索引是建立在SNAME上的非聚集索引,以SNAME首字母排序,而查询语句却要求查询名字最后一个是“华”的SNAME,还是需要全部扫描students表.因此不能提高该语句的查询速度。

第9题:

您需要通过创建索引加快以下查询的速度: SELECT*FROM雇员WHERE(薪金*12)>100000; 以下哪条语句将完成此任务?()

  • A、基于(薪金,12)创建一个组合索引。
  • B、基于(薪金*12)创建一个基于函数的索引。
  • C、基于(薪金)创建一个索引。
  • D、基于((薪金*12)>100000)创建一个基于函数的索引。

正确答案:B

第10题:

“雇员”表在LAST_NAME列上有一个名为LN_IDX的索引。您要将此索引更改为FIRST_NAME列的索引。以下哪条SQL语句将实现此操作()

  • A、ALTER INDEX ln_idx ON employees(first_name)
  • B、ALTER INDEX ln_idx TO employees(first_name)
  • C、ALTER INDEX ln_idx TO fn_idx ON employees(first_name)
  • D、以上都不能;您无法变更索引

正确答案:B

更多相关问题