版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、数据库实验心得我在sql server索引基础知识系列中,第一篇就讲了记录数据的基本格式。那里主要讲解的是,数据库的最小读存单元:数据页。一个数据页是8k大小。对于数据库来说,它不会每次有一个数据页变化后,就存到硬盘。而是变 化达到一定数量级后才会作这个操作。这时候,数据库并不是以数据页来作为操作单元,而是以64k的数据(8个数据页,一个区)作为操作单元。区是管理空间的基本单位。一个区是八个物理上连续的页(即64 kb)。这意味着sql server 数据库中每 mb有16个区。为了使空间分配更有效,sql server不会将所有区分配给包含少量数据的 表。sql server 有两种类型的区
2、:统一区,由单个对象所有。区中的所有 8页只能由所属对象使用。混合区,最多可由八个对象共享。区中八页的每页可由不同的对象所有。通常从混合区向新表或索引分配页。当表或索引增长到 8页时,将变成使用统 一区进行后续分配。如果对现有表创建索引,并且该表包含的行足以在索引中生 成8页,则对该索引的所有分配都使用统一区进行。为何会这样呢?其实很简单:读或写8kb的时间与读或写64 kb的时间几乎相同。在8 kb到64 kb范围之内,单个磁盘i/o传输操作所花的时间主要是磁盘取数臂和读/写磁头运动的时间。因此,从数学上来讲,当需要传输 64 kb以上的sql数据时,尽可能地执行64 kb磁盘传输是有益的,
3、即分成数个 64k的操作。因为64 kb传输基本上与8 kb传输一样快,而每次传输的sql server 数据 是8 kb传输的8倍。我们通过一个实例来看有and操作符时候的最常见的一种情况。我们有下 面一个表,create table dbo.member( member_ no dbo. nu meric_ididen tity(1,1) not n ull, last name dbo.shortstri ng not n ull,firstnamedbo.shortstring not null,middleinitialdbo.letternuII, streetdbo.shorts
4、tringnot nuII,city dbo.shortstringnot nu II, state_ prov dbo.statecode not n ull, co un trydbo.co un trycode not nu II, mail_code dbo.mailcode not nu II,phone_no dbo. phonenu mber nu II, p hotogra ph image n ull,issue_dt datetime not null default (getdate(),expr_dt datetimenot null default (dateadd(
5、year,1,getdate(), regi on_nodbo. nu meric_id not nu II, cor p_no dbo. nu meric_id nu II,p rev_bala nee mon ey n ull default (0), curr_bala nee mon ey nulldefault (0), member_code dbo.status_code not null default ( )这个表具备下面的四个索引:索引名细节索引的列member_corporati on _li nk non clustered located on p rimary co
6、rp_nomember_ident clustered,unique, primary key located on primary member_nomember_regio n_li nk non clustered located on p rimary regi on_nomemberfirst name non clustered located on p rimary first name k% and _no > 6 and _no当我们执行下面的sql查询时候,select _no, , _nofrom as mwhere like6) b-这个查询可以直接使用 memb
7、er_region_link 非聚集索引,而且这个非 聚集索引覆盖了所有查询列-实际执行时,只需要 逻辑读取10次where _no = _no不信,你可以看这两个sql的执行计划,以及逻辑读信息,都是一样的。其实上面的sql,如果优化成下面的方式,实际的逻辑读消耗也是一样的。为何 sql server 不会优化成下面的方式。是因为 and操作符优化的另外一个原则。1/26的数据和1/6的数据找交集的速度要比1/52的数据和1/3的数 据找交集速度要慢。'k%select _n o,_ no from(select _no, from as mwhere like 1/26 数据)a,
8、(select _no, _no from as mwhere_no 6 and _no 6 and _no < 5000go_no > 6 and _no 6 and _no 6 and指定的一个或者多个索引名字。对于 0 ,这里index 计算符可以是0,1,1的意义如下:强制执行聚集索引扫描,in dex(1)强制如果存在聚集索引,则in dex(0)执行聚集索引扫描或查找(使用性能最高的一种)如果不存在聚集索引,则index(O) 强制执行表扫描,index(1)被解释为错误。总结知识点:简单来说,我们可以这么理解:sql server对于每一条查询语句。会根据 实际索引情
9、况(sysindexes系统表中存储这些信息),分析每种组合可能的成本。 然后选择它认为成本最小的一种。作为它实际执行的计划。成本代价计算的一个主要组成部分是逻辑 i/o的数量,特别是对于单表的查询。and操作要满足所有条件,这样,经常会要求对几个数据集作交集。数据集越 小,数据集的交集计算越节省成本。的项目中,竟然出现了滥用聚集索引的问题。看来没有培训最最基础的索引的 意义,代价,使用场景,是一个非常大的失误。这篇博客就是从这个角度来罗列 索引的基础知识。使用索引的意义索引在数据库中的作用类似于目录在书籍中的作用,用来提高查找信息的速度。使用索引查找数据,无需对整表进行扫描,可以快速找到所需
10、数据。使用索引的代价索引需要占用数据表以外的物理存储空间。创建索引和维护索引要花费一定的时间。当对表进行更新操作时,索引需要被重建,这样降低了数据的维护速度。创建索引的列主键外键或在表联接操作中经常用到的列在经常查询的字段上最好建立索引不创建索引的列很少在查询中被引用包含较少的惟一值 定义为text、ntext或者image数据类型的列heaps是staging data 的很好选择,当它没有任何index时excellent for high performanee data loading (parallel bulk load and p arallel in dex creati on
11、 after load) excelle nt as a p artiti on to a p artiti oned view or a p artiti oned table聚集索引提高性能的方法,在前面几篇博客中分别提到过,下面只是一个 简单的大纲,细节请参看前面几篇博客。何时创建聚集索引?clustered index会提高大多数table的性能,尤其是当它满足以下条件时:独特,狭窄,静止:最重要的条件 持续增长的,最好是只向上增加。例如:ide ntity date, ide ntity guid (on ly whe n using n ewseque ntialid() fun ctio n)聚集索引唯一性(独特型的问题)由于聚集索引的b+树
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 【2021届备考】2021届全国名校数学试题分类解析汇编(12月第三期):M单元-推理与证明
- 音乐教师培训总结5篇
- 【红对勾】2021-2022学年人教版高中政治必修一习题-第一单元-生活与消费-课时作业6
- 【每日一练】《晨读晚练》英语高三年级上学期第五周参考答案及解析5
- 【全程复习方略】2022届高考数学(文科人教A版)大一轮专项强化训练(五)圆锥曲线的综合问题-
- 2025年七年级统编版语文寒假预习 第01讲 孙权劝学
- 【全程复习方略】2020年高考化学单元评估检测(四)(鲁科版-福建专供)
- 浙江省温州苍南2023-2024学年第二学期期末检测卷 六年级下册科学
- 【全程复习方略】2022届高考数学(文科人教A版)大一轮课时作业:10.3-几何概型-
- 【全程复习方略】2022届高考数学(文科人教A版)大一轮课时作业:2.3-函数的奇偶性与周期性-
- QCT1067.4-2023汽车电线束和电器设备用连接器第4部分:设备连接器(插座)的型式和尺寸
- 2019电子保单业务规范
- 学堂乐歌 说课课件-2023-2024学年高中音乐人音版(2019) 必修 音乐鉴赏
- 幕墙工程材料组织、运输装卸和垂直运输方案
- 灌溉用水循环利用技术
- 泌尿科一科一品汇报课件
- 2024年江西省三校生高职英语高考试卷
- 中国古代文学智慧树知到期末考试答案章节答案2024年广州大学
- 重庆市南岸区2022-2023学年五年级上学期期末语文试卷
- 现浇钢筋混凝土整体式肋梁楼盖结构-课程设计
- 锦纶纤维研究报告-中国锦纶纤维行业竞争格局分析及发展前景研究报告2020-2023年
评论
0/150
提交评论