还剩13页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
sql数据库实训总结 sql数据库实训总结,SQL是StructuredQueryLanguage结构化查询语言的缩写SQL是专为数据库而建立的操作命令集,是一种功能齐全的数据库语言下面是分享的sql数据库实训总结,欢迎阅读! sql数据库实训总结【1】 我在sqlserver索引基础知识系列中,第一篇就讲了记录数据的基本格式 那里主要讲解的是,数据库的最小读存单元数据页 一个数据页是8k大小 对于数据库来说,它不会每次有一个数据页变化后,就存到硬盘 而是变化达到一定数量级后才会作这个操作 这时候,数据库并不是以数据页来作为操作单元,而是以64k的数据8个数据页,一个区作为操作单元 区是管理空间的基本单位 一个区是八个物理上连续的页即64kb 这意味着sqlserver数据库中每mb有16个区 为了使空间分配更有效,sqlserver不会将所有区分配给包含少量数据的表 sqlserver有两种类型的区 统一区,由单个对象所有 区中的所有8页只能由所属对象使用 混合区,最多可由八个对象共享 区中八页的每页可由不同的对象所有 通常从混合区向新表或索引分配页 当表或索引增长到8页时,将变成使用统一区进行后续分配 如果对现有表创建索引,并且该表包含的行足以在索引中生成8页,则对该索引的所有分配都使用统一区进行 为何会这样呢 其实很简单 读或写8kb的时间与读或写64kb的时间几乎相同 在8kb到64kb范围之内,单个磁盘i/o传输操作所花的时间主要是磁盘取数臂和读/写磁头运动的时间 因此,从数学上来讲,当需要传输64kb以上的sql数据时, 尽可能地执行64kb磁盘传输是有益的,即分成数个64k的操作 因为64kb传输基本上与8kb传输一样快,而每次传输的sqlserver数据是8kb传输的8倍 我们通过一个实例来看有and操作符时候的最常见的一种情况 我们有下面一个表, ...。