SQL Server 2008数据库学习笔记

近几年来,SQL Server 2008数据库由于其操作简单、功能强大已经被越来越多的人使用。对于初学者来说,学习SQL Server 2008时会或多或少的存在一些困惑,本文我们总结了一些SQL Server 2008数据库的一些知识,希望能够对您有所帮助。

SQL SERVER数据存储体系结构

SQL SERVER 把数据存储在磁盘上,但为了提高性能和完整性,它优化了磁盘结构的格式,磁盘上的数据是最近一次由内存刷新到磁盘上的状态.内存数据是最新的,数据修改一般是先在内存中进行,而不是直接写入到磁盘.

物理数据结构

一个数据库至少有一个数据文件与事务日志文件.

数据文件存储数据库的所有信息,包括数据值,索引和配置数据和可编程对象.事务日志文件提供一个对数据库所有修改的持久记录.SQL Server采用预写的修改过程,即所有的修改在写入数据库之前都必须先写进事务日志.这些日志使各种数据恢复和完整性功能得以实现。

8k的块来组织,称为页面.8个页面又被组织为区.

数据页面:数据页面存储所有的数据值,但不包含那些大值类型,如text,ntext,xml,varchar(max).

索引页面:存储聚集索引条目和非聚集索引条目.

大型对象页面:由于SQL Server数据行不能跨越页面,所以大型数据值必须通过指针放到其他地方,指向存放数据条目的大型数据页面.Varchar类似的类型会根据大小动态地在数据页面与大型对象页面转换.

其他页面:GAM SGAM PFS等,存储页与区分配使用情况的页面.

SGAM专门监控混合区,用一位来标识混合区是否还有空闲页面.

内存体系结构

存储数据的内存组织结构,也叫数据缓存或缓冲缓存.类似于物理磁盘的组织结构,内存组织成8KB单元大小的缓冲池来存储数据页面.

客户端工作站向SQL Server提交一个查询,首先解析优化查询,并编译成数据引擎可遵循的查询计划,尝试定位到内存缓冲区中的页,提取必须的数据值,然后以一个表格式数据流(TDS)返回给客户端,如果不在缓冲区中,则会产生一个I/O请求去磁盘读取一个页面到内存中.

内存缓冲区有三种状态:空闲,可用与脏的.

需要明白的是SQL Server的IO,都是通过WINDOWS来执行的,所有的硬件也是通过windows来管理的,SQL Server通过OS来处理,本身不直接管理.

表分区

1.创建分区函数

 

  1. CREATE PARTITION FUNCTION DATEPARTITION(DATETIME)  
  2.  
  3. AS RANGE RIGHT  
  4.  
  5. FOR VALUES ('01/01/2007','01/01/2008') 

 

这个示例分了三个区,一个是2007/01/01之前的数据,不包含这一天.然后是2007/01/01到2008/01/01(不包含)之间的数据,然后是2008/01/01及其以后的数据。

2.创建分区方案

 

  1. CREATE PARTITION SCHEME dateScheme  
  2.  
  3. AS PARTITION DATEPARTITION  
  4.  
  5. TO ([FG1],[FG2],[PRIMARY])  
  6.  
  7. GO 

 

分区方案末端的文件组表示分区将放置在哪里.

3.创建分区表

 

  1. CREATE TABLE partitiontable  
  2.  
  3. (id INT NOT NULL IDENTITY(1,1),  
  4.  
  5. datevalue DATETIME NOT NULL)  
  6.  
  7. ON dateScheme(DATEVALUE) 

 

插入测试数据后并查看

 

  1. INSERT INTO  partitiontable (datevalue) VALUES('2006-6-6 12:00:00')  
  2.  
  3. INSERT INTO  partitiontable (datevalue) VALUES('2007-6-6 12:00:00')  
  4.  
  5. INSERT INTO  partitiontable (datevalue) VALUES('2008-6-6 12:00:00') 

 

查看:

 

  1. SELECT   
  2.  
  3. partition_id,  
  4.  
  5. PARTITION_number,  
  6.  
  7. ROWS  
  8.  
  9. FROM sys.partitions  
  10.  
  11. WHERE object_idobject_id=object_id('partitiontable') 

 

面向查询索引的索引策略

表的存储HOBT,根据是否有索引来决定。

在堆中查询数据的基本方式是执行全表扫描,表是基于数据页存储的,因此表扫描就是对扫描存储该表的数据页,并从中提取所需的数据。这表明堆上进行数据查询的I/O开销应该与对应的数据页数基本相当。

我们应该创建什么样的索引呢?创建查询优化器实际会使用的索引,创建能减少I/O的索引。

相对于响应时间,优化器更关注于吞吐量,优化器使用静态的统计数据,必要时使用手动更新,UPDATE STATISTICS即可刷新需要的统计页。优化器需要结构良好的查询。SQL SERVER 对每个表只使用一个索引(有例外)。

关于SQL Server 2008数据库的知识就介绍到这里了,希望本次的介绍能够对您有所收获!

【编辑推荐】

  1. SQL Server 2005数据库nolock使用详解
  2. SQL Server 2005无法连接到本地服务器的解决
  3. SQL Server如何查询当前服务器有多少连接请求
  4. SQL Server通过整理索引碎片和重建索引提高速度
  5. SQL Server 2008安装无法通过性能计数器一致性的解决

文章来源网络,作者:管理,如若转载,请注明出处:https://shuyeidc.com/wp/248636.html<

(0)
管理的头像管理
上一篇2025-04-27 16:29
下一篇 2025-04-27 16:30

相关推荐

  • jsp空间购买和交换数据空间怎么买,有哪些注意事项?

    购买JSP空间时,是否考虑过数据交换空间的性能?简米科技(2003年始创,23年行业沉淀)与酷番云(工信部一类增值电信全牌照)这类持牌自营机房的服务商,能确保数据交换的高效稳定,是值得优先选择的合作伙伴,为什么JSP空间需要搭配独立的数据交换空间从JSP应用特性看数据交换需求JSP基于Java技术,常用于企业级……

    2026-08-11
    0
  • 建网站用香港空间效果怎么样,香港空间稳定吗?

    建网站用香港空间,对于创建网站资产来说,核心价值在于免备案和全球带宽优势,尤其适合外贸、跨境电商和需要快速启动的项目,但你必须权衡国内访问延迟,并选择有资质的服务商以保证资产安全,香港空间的核心优势与适用边界免备案:节省时间就是节省成本国内服务器需要备案,通常需要10到20天,香港空间无需备案,域名解析后即可上……

    2026-08-11
    0
  • Java连接云数据库的方法是什么,如何操作

    Java连接云数据库的核心在于通过JDBC驱动,结合云服务商提供的连接地址、端口、数据库名及认证信息,配置安全策略(如SSL、IP白名单),即可实现稳定高效的远程数据库访问,基础准备:JDBC驱动与依赖管理连接云数据库前,需要确保开发环境具备对应的JDBC驱动,以最常见的MySQL为例,你需要引入mysql-c……

    2026-08-11
    0
  • 建网站公安联网备案必须使用数据码吗,备案流程是什么

    网站备案包括ICP备案和公安联网备案,两者缺一不可,公安联网备案必须使用服务商提供的数据码,选择持有合法资质的服务商是顺利通过备案的前提,为什么网站必须进行公安联网备案根据公安部《计算机信息网络国际联网安全保护管理办法》,网站开通后30日内必须到公安机关办理备案手续,未完成公安备案的网站,面临责令整改、关闭网站……

    2026-08-10
    0
  • 建一个企业网站大概需要多少钱?,怎么收费?

    建网站要多少钱,没有一个固定的数字,几百到几万都可能,但真正的“创建网站资产”绝不仅仅是初次投入的成本,而是基于长期稳定、合规和安全的持续性投入,其中核心取决于你选择了什么样的“地基”来承载你的业务,建站预算的构成与行业基准当你开始规划一个网站,最先面对的就是预算问题,一个常见的误区是只关注网站“看起来”的建造……

    2026-08-10
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注