Database工程师面试笔试题目最新.docx

上传人:ylj18****41534 文档编号:21313803 上传时间:2022-06-19 格式:DOCX 页数:6 大小:14.16KB
返回 下载 相关 举报
Database工程师面试笔试题目最新.docx_第1页
第1页 / 共6页
Database工程师面试笔试题目最新.docx_第2页
第2页 / 共6页
点击查看更多>>
资源描述

《Database工程师面试笔试题目最新.docx》由会员分享,可在线阅读,更多相关《Database工程师面试笔试题目最新.docx(6页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、Database工程师面试笔试题目 Database工程师题库 1、查询全部老师和同学的name、sex和birthday. 2、查询全部“女”老师和“女”同学的name、sex和birthday. 3、查询成果比该课程平均成果低的同学的成果表。 4、查询全部任课老师的Tname和Depart. 5 查询全部未讲课的老师的Tname和Depart. 6、查询至少有2名男生的班号。 7、查询Student表中不姓“王”的同学记录。 8、查询Student表中每个学生的姓名和年龄。 9、查询Student表中最大和最小的Sbirthday日期值。 10、以班号和年龄从大到小的依次查询Student

2、表中的全部记录。 11、查询“男”老师及其所上的课程。 12、查询最高分同学的Sno、Cno和Degree列。 13、查询和“李军”同性别的全部同学的Sname. 14、查询和“李军”同性别并同班的同学Sname. 15、查询全部选修“计算机导论”课程的“男”同学的成果表 什么是聚集索引和非聚集索引 (1)非聚集索引 非聚集索引与课本中的索引类似。数据存储在一个地方,索引存储在另一个地方,索引带有指针指向数据的存储位置。索引中的项目按索引键值的依次存储,而表中的信息按另一种依次存储(这可以由聚集索引规定)。假如在表中未创建聚集索引,则无法保证这些行具有任何特定的依次。 典型的桌面数据库运用的是

3、非聚集索引。在这类索引中,索引键值是有序的,而每个索引节点所指向的数据行是无序的。一个SQL Server表最多可以拥有255个非聚集索引。 非聚集索引与聚集索引一样有 B-树结构,但是有两个重大差别: 1、数据行不按非聚集索引键的依次排序和存储。 2、非聚集索引的叶层不包含数据页。 相反,叶节点包含索引行。每个索引行包含非聚集键值以及一个或多个行定位器,这些行定位器指向有该键值的数据行(假如索引不唯一,则可能是多行)。非聚集索引可以在有聚集索引的表、堆集或索引视图上定义。在 SQL Server中,非聚集索引中的行定位器有两种形式: 1、假如表是堆集(没有聚集索引),行定位器就是指向行的指针

4、。该指针用文件标识符 (ID)、页码和页上的行数生成。整个指针称为行 ID。 2、假如表是堆集(没有聚集索引),行定位器就是指向行的指针。该指针用文件标识符 (ID)、页码和页上的行数生成。整个指针称为行 ID。 由于非聚集索引将聚集索引键作为其行指针存储,因此使聚集索引键尽可能小很重要。假如表还有非聚集索引,请不要选择大的列作为聚集索引的键。 在创建非聚集索引之前,应先了解您的数据是如何被访问的。可考虑将非聚集索引用于: 包含大量非重复值的列,如姓氏和名字的组合(假如聚集索引用于其它列)。假如只有很少的非重复值,如只有 1 和 0,则大多数查询将3、不运用索引,因为此时表扫描通常更有效。 1

5、、不返回大型结果集的查询。 2、返回精确匹配的查询的搜寻条件(WHERE 子句)中常常运用的列。 3、常常须要联接和分组的决策支持系统应用程序。应在联接和分组操作中运用的列上创建多个非聚集索引,在任何外键列上创建一个聚集索引。 4、在特定的查询中覆盖一个表中的全部列。这将完全消退对表或聚集索引的访问。 (2)聚集索引 聚集索引确定表中数据的物理依次。聚集索引类似于电话簿,后者按姓氏排列数据。由于聚集索引规定数据在表中的物理存储依次,因此一个表只能包含一个聚集索引。但该索引可以包含多个列(组合索引),就像电话簿按姓氏和名字进行组织一样。 聚集索引在系统数据库表sysindexes 内有一行,其

6、indid = 1。数据链内的页和其内的行按聚集索引键值排序。全部插入都在所插入行中的键值与排序依次相匹配时执行。 SQL Server将索引组织为B-树。索引内的每一页包含一个页首,页首后面跟着索引行。每个索引行都包含一个键值以及一个指向较低级页或数据行的指针。索引的每个页称为索引节点。B-树的顶端节点称为根节点。索引的底层节点称为叶节点。每级索引中的页链接在双向链接列表中。在聚集索引内数据页组成叶节点。根和叶之间的任何索引级统称为中间级。 对于聚集索引,sysindexes.root 指向它的顶端。SQL Server 沿着聚集索引阅读以找到聚集索引键对应的行。为找到键的范围,SQL Se

7、rver 阅读索引以找到这个范围的起始键值,然后用向前或向后指针扫描数据页。为找到数据页链的首页,SQL Server 从索引的根节点起先沿最左边的指针进行扫描. 聚集索引对于那些常常要搜寻范围值的列特殊有效。运用聚集索引找到包含第一个值的行后,便可以确保包含后续索引值的行在物理相邻。例如,假如应用程序执行的一个查询常常检索某一日期范围内的记录,则运用聚集索引可以快速找到包含起先日期的行,然后检索表中全部相邻的行,直到到达结束日期。这样有助于提高此类查询的性能。同样,假如对从表中检索的数据进行排序时常常要用到某一列,则可以将该表在该列上聚集(物理排序),避开每次查询该列时都进行排序,从而节约成

8、本。 对于聚集索引,人们往往有一些错误的相识。其中,最常见的错误有: 1、聚集索引会降低insert操作的速度,因为必需要向后移动一半的数据来为新插入的行腾出空间。这种相识是错误的,因为可以利用填充因子限制填充的百分比,从而在索引页上为新插入的数据保留空间。假如索引页填满了,SQL Server将会进行页拆分,在这种状况下只有第一个页才会受到影响。 2、在运用标识列的主键上创建聚集索引是一种好的设计方法,它可以使对表的操作达到最快速度。这种相识是错误的,它奢侈了创建其它更有效的聚集索引的机会。并且,运用这种方法会把每个新插入的记录行都存储到表尾部的同一个的数据页中,这将导致数据库的热点和锁争用

9、。笔者曾经见过采纳这种方法设计的数据库,对于每一个新订单,客户服务人员都不得不等待数分钟来加以确认。 3、聚集索引是具有魔力的。假如哪个查询的速度不够快,那么就在该列上创建聚集索引,对于表的操作速度肯定会得到提高。这种相识也是错误的,聚集索引只是比非聚集索引稍稍快了那么一点点。因为在每个表上只能创建一个聚集索引,所以它也是一种珍贵的性能资源,只有在那些常常作为条件查询一组记录行的列上才应当建立聚集索引。 Oracle中delete,truncate和drop的区分 Delete吩咐用来删除表的全部或者一部分数据行,执行delete之后,用户须要提交(commmit)或者回滚(rollback) transaction 来执行删除或者撤销删除, delete吩咐会触发这个表上全部的delete触发器。 Truncate删除表中的全部数据, 这个操作不能回滚,也不会触发这个表上的触发器,TRUNCATE比delete更快,占用的空间更小。 Drop吩咐从数据库中删除表, 全部的数据行,索引和权限也会被删除,全部的DML触发器也不会被触发,这个吩咐也不能回滚。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > 工作报告

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁