数据库
学生表(学号,姓名,性别,身份证号,系所号),学号为主码
系所表(系所号,系所名,系所简称),系所号为主码
在数据库中执行如下T-SQL代码:

(1)执行过程中发现速度比较缓慢,为了解决性能问题,需在功能不变的情况下,将此TSQL代码改为一条SQL语句:
s-选择 c-选择 (术)FROM学生表JOIN系所表ON学生表.系所号=系所表.系所号WHERE系所名LIKE´%电%´;
请分析此改变是否可以提高性能,并给出原因。
(2)学生表的身份证号和姓名上建有一个复合索引,索引建立语句为
CREATEINDEX idx_身份证号_姓名ON学生表(身份证号,姓名)
请指出如下两个查询语句能否使用此索引并说明原因。
s-选择 FROM学生表WHERE身份证号=´123456789012345678´;
s-选择 *FROM学生表WHERE姓名=´小明´;
本题考查的是T-SQL与SQL语句使用的区别,以及索引相关知识,如索引定义,在什么地方建立索引,建立索引的条件等等。
(1)T-SQL即Transact-SQL,是SQL在Microsoft SQL Server上的增强版,它是用来让应用程序与SQL Server沟通的主要语言。T-SQL提供标准SQL的DDL和DML功能,加上延伸的函数、系统预存程序以及程式设计结构(例如IF和WHILE)让程式设计更有弹性。
SQL是集DDL、DML、DCL为一体的标准关系数据库语言。其中DDL数据定义语言用于定义和管理SQL数据库中的所有对象的语言;DML数据操纵语言,SQL中处理数据等操作统称为数据操纵语言。
SQL作为结构化查询语言,是标准的关系型数据库通用的标准语言;T-SQL是在SQL基础上扩展的SQL Server中使用的语言。
(2)索引的知识
索引技术是一种快速数据访问技术,它将一个文件的每个记录在某个或某些领域(或称为属性)上的取值与该记录的物理地址直接联系起来,提供了一种根据记录域的取值快速访问文件记录的机制。索引的使用要恰到好处,其使用原则一般如下:
①经常在查询中作为条件被使用的列,应为其建立索引;
②频繁进行排序或分组(即进行group by或order by操作)的列,应为其建立索引;
③一个列的值域很大时,应为其建立索引;
④如果待排序的列由多个,应在这些列上建立复合索引。
【参考答案】
(1)s-选择 c-选择(*)FROM学生表JOIN系所表ON学生表.系所号=系所表.系所号WHERE系所名LIKE'%电%'性能更好。
原因:T-SQL的代码需要先扫描一遍系所表,然后根据扫描得到的每个记录重新扫描一遍学生表得出结果。使用所写的SQL语句实现同样的功能,将学生表和系所表连接之后按条件过滤,只需要扫描一遍连接之后的表即可。
(2)创建的复合索引对第二条语句的查询效率提高不明显,因为其是复合索引且身份证号排在前面,对查找姓名的查询效率提高不明显,而明显会提高第一条语句的查询效率。
你可能感兴趣的试题
A.操作可行性分析
B.经济可行性分析
C.技术可行性分析
D.开发方案可行性分析
A.数据备份
B.数据库重组
C.索引调整
D.建立数据库结构
A.输入
B.控制
C.机制
D.输出
最新试题
(10分)在SQL Server 2008数据库中存在销售单据明细表,其建表语句为:在系统运行一段时间后,此表中有近千万
(10分)设在SQL Server 2008某数据库中有汽车表和销售表,表的定义如下:PRIMARYKEY(汽车型号,销
(10分)假定我们要为某社交平台建立一个数据库,存储如下信息:·每个用户有用户编号、姓名、手机号;·每个群有群编号,群名
在企业数据仓库架构中,操作型数据存储ODS一般情况下主要用来支持即时OLAP和全局型【15】两类应用。
在数据仓库环境中,数据的【14】设计是一种重要的设计问题,它会影响到数据仓库中数据量以及系统能回答的查询的类型。
在分布式数据库系统中,为了保证全局事务的原子性,参与事务执行的所有场地或者全部提交,或者全部【13】。
事务内部故障可以分为预期的和非预期的,并发死锁故障属于【12】的事务内部故障。
增加冗余列的调优方法是典型的以空间换【11】的调优方法。
【10】视图是一种保存了查询结果的数据库对象,其中的数据是预先计算并保存在对象中的。
在SQL Server 2008中,若要删除U1登录账户,请补全下列语句:DROP【9】U1
