数据库实验心得

我在sql server 索引基础知识系列中,第一篇就讲了记录数据的基本格式。那里主要讲解的是,数据库的最小读存单元:数据页。一个数据页是8k大小。

对于数据库来说,它不会每次有一个数据页变化后,就存到硬盘。而是变化达到一定数量级后才会作这个操作。 这时候,数据库并不是以数据页来作为操作单元,而是以64k的数据(8个数据页,一个区)作为操作单元。

区是管理空间的基本单位。一个区是八个物理上连续的页(即 64 kb)。这意味着 sql server 数据库中每 mb 有 16 个区。

为了使空间分配更有效,sql server 不会将所有区分配给包含少量数据的表。sql server 有两种类型的区:

统一区,由单个对象所有。区中的所有 8 页只能由所属对象使用。

混合区,最多可由八个对象共享。区中八页的每页可由不同的对象所有。

通常从混合区向新表或索引分配页。当表或索引增长到 8 页时,将变成使用统一区进行后续分配。如果对现有表创建索引,并且该表包含的行足以在索引中生成 8 页,则对该索引的所有分配都使用统一区进行。

为何会这样呢?

其实很简单:

读或写 8kb 的时间与读或写 64 kb的时间几乎相同。

在 8 kb 到 64 kb 范围之内,单个磁盘 i/o 传输操作所花的时间主要是磁盘取数臂和读/写磁头运动的时间。

因此,从数学上来讲,当需要传输 64 kb 以上的 sql 数据时,

尽可能地执行 64 kb 磁盘传输是有益的,即分成数个64k的操作。

因为 64 kb 传输基本上与 8 kb 传输一样快,而每次传输的 sql server 数据是 8 kb 传输的 8 倍。

我们通过一个实例来看 有and 操作符时候的最常见的一种情况。我们有下面一个表,

create table [dbo].[member]( [member_no] [dbo].[numeric_id] identity(1,1) not null, [lastname] [dbo].[shortstring] not null, [firstname] [dbo].[shortstring] not null, [middleinitial] [dbo].[letter] null, [street] [dbo].[shortstring] not null, [city] [dbo].[shortstring] not null, [state_prov] [dbo].[statecode] not null, [country] [dbo].[countrycode] not null, [mail_code] [dbo].[mailcode] not null, [phone_no] [dbo].[phonenumber] null, [photograph] [image] null, [issue_dt] [datetime] not null default (getdate()), [expr_dt] [datetime] not null default (dateadd(year,1,getdate())), [region_no] [dbo].[numeric_id] not null, [corp_no] [dbo].[numeric_id] null, [prev_balance] [money] null default (0), [curr_balance] [money] null default (0), [member_code] [dbo].[status_code] not null default (' '))

这个表具备下面的四个索引:

索引名 细节 索引的列

member_corporation_link nonclustered located on primary corp_no

member_ident clustered, unique, primary key located on primary member_no

member_region_link nonclustered located on primary region_no

memberfirstname nonclustered located on primary firstname

当我们执行下面的sql查询时候,

select m.member_no, m.firstname, m.region_nofrom dbo.member as mwhere m.firstname like 'k%' and m.region_no > 6 and m.member_no < 5000go

共3页,当前第1页123

数据库实验心得 相关内容:

周四的晚上,参加了高中同学聚会。十年的时间一晃而过,遥想当年,刚入校时,大家都还只是十七八岁的花季少年,如今已一个个家庭美满,事业有成。其中,最让我让我印象深刻的,当属我们班上唯一的一对夫妻同学。...

一个礼拜的机修生活过去了只有一个字——累,修机的时候有感觉爽的时候同样也难免会有郁闷的时候。有成就感的时候也有失败感的时候。我的心里只装了一个心态,那就是去修好自己遇到的每一台的坏机器,虽然有时候会遇到之前没有遇到的情况...

1:多多看书,你要把书看成是你的亲生父母,天天都要去看才行,然后还要依赖他,主要是没他不行啊,你想想看,你不去看的话,那来的基础啊,做什么事都要有底子才行啊,跟我们成长是一个意思,反正是一步一步,慢慢来。...

班主任既是一个班集体的组织者、教育者和指导者,又是学校实施教育教学工作的得力助手。然而如何成为一个能够有效管理班级同时又深受学生欢迎的班主任,这是大有学问的。...

我叫xx,我是xx财经大学的一名学生亦是开发区万里爱心会的一名义工。作为一名义工,半年来,我遵守慈善义工的章程,履行慈善义工的义务,我积极组织并参加多项义工活动。...

通过这次培训,我认识到作为酒店服务员,在酒店工作中热忱固然重要,但还需要具备良好的服务能力。例如遇到突发事件,客人心肌梗塞突然昏厥,如果等医务人员到来,客人生命恐怕会有危险。...

三月,学雷锋活动月。现在是一个英雄缺失的年代,在商业利益的推动下,我们不由得怀念过年过去英雄辈出的日子;怀念归去化崇拜为力量努力进取的日子;怀念过去为寻找思想答案的答案而苦苦追寻的日子。...

作为xx区第三批选聘的大学生村干部,在来农村半年的摸爬滚打中,深深地感受到村官不是混日子的职业,干好村官不仅是一项技术活,同时更是一项良心活。...

我们经常会在大街上看到许多乱贴的小广告,严重影响了市容,参加撕小广告的心得体会是什么样的呢?接下来就是第一范文网小编为大家整理的关于撕小广告的心得体会,供大家阅读!撕小广告的心得体会篇【1】我们这次活动的主题是清除马路两旁的...

查看更多>>

Logo

一站式 AI 云服务平台

更多推荐