《Microsoft Sql server 2008 Internals》读书笔记--第三章Databases and Database Files(1)

深入解析sqlserver 2008 Microsoft SQL Server 2008 Internals 英文版,文档版PDF,非扫描版,可复制内容。 立即下载

  最近断断续续看《Microsoft Sql server 2008 Internals》,中文名是《深入解析Microsoft Sql server 2008》,由于邀月拿到的是英文版,所以一边看,一边查字典,顺便把一些理解记下来,翻译或理解不对之处,敬请指出。3w@love.cn。欢迎交流。

  这里邀月可以保证的是:这个系列95%以上的内容都是邀月根据原英文纯手工翻译,加上自己的理解和注释,没有借助任何翻译工具。除了已注明的出处MSDN 之外,如有转载,请注明来自邀月工作室。

  本系列文章预计约60-70篇,文章中所有示例,邀月均在SQL Server 2008环境下运行通过。
  本书是讲述SQL Server关系数据库引擎内部机理和架构的权威指南。书中详细阐述了SQL Server处理查询、管理数据的相关内容,包括SQL Server架构和配置、跟踪/扩展事件、日志和恢复、索引、表格、查询优化、事务/并发以及DBCC。本书适合中高级数据库开发人员阅读。

首先看的是第三章 “Databases and DatabaseFiles”--数据库和数据库文件,只所以写出来,是觉得这书读了还是有收获,以前的一些概念理解不对。简单的东西越要弄清楚,免得到时很丢人。呵呵。本系列如无特别说明,均指SQL server 2008,邀月用的是Sql server 2008 sp1英文版。

一、一些基本概念:

  1、一个SQL实例最多可以有32767个数据库。

  2、一个数据库的大小可以从2MB到524272TB(terabytes)。

  3、数据库中的对象集合(objects),包含表、视图、存储过程、约束,不超过2有31次方-1 ,直观点,就是超过20亿。

  4、数据库文件有三类(Primary data files(.mdf)、Second data files(.ndf)、Log files(.ldf)

 二、几类常用的数据库:

1、系统数据库。包括master,model,tempdb

2、资源数据库。像mssqlsystemresource,msdb。前者一般位于E:/Program Files/Microsoft SQLServer/MSSQL10.AGRONET08/MSSQL/Binn下的mssqlsystemresource.mdf,约60M大。如我们熟悉的

select  @@version

就是该数据库的内置函数,本机查询结果为
Microsoft SQL Server 2008 (SP1) - 10.0.2531.0 (IntelX86)   Mar 29 2009 10:27:29   Copyright (c) 1988-2008 MicrosoftCorporation  Enterprise Edition on Windows NT ****

3、示例数据库。如advertureworks,pubs,Northwind

三、创建数据库语句

1、创建一个数据库

2、创建一个文件组FileFroup

3、进阶:利用FileGroup实现分区数据的物理存放。

分三步:第一步:创建FileGroup

第二步:创建partition function,这里偷懒从Northwind数据库中插入一些数据。

第三步:察看数据记录在不同分区和文件组的存放位置。

效果:实现了按照分区函数指定的条件下数据记录的物理分开存放。这个效果很酷!

 邀月工作室

邀月工作室

 

 发现,一个问题:

以上语句无法在NTFS分区执行,提示:

很奇怪这个问题,终于找到答案。原来是FileStream权限不足,进入MSSQLServer配置管理器,进行如图设置即可 

邀月工作室

更详细的信息,请参看MSDN

SQL Server 2005 中的分区表和索引: http://msdn.microsoft.com/zh-cn/library/ms345146%28SQL.90%29.aspx#EHAA:

宋立桓的webcast讲座也不错:http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032327866&Culture=zh-CN

四、文件收缩

文件收缩有两个命令:

(一) DBCC SHRINKFILE:收缩当前数据库的指定数据或日志文件的大小,或通过将数据从指定的文件移动到相同文件组中的其他文件来清空文件,以允许从数据库中删除该文件。文件大小可以收缩到比创建该文件时所指定的大小更小。这样会将最小文件大小重置为新值。

关于文件不收缩或收缩被阻塞,请查看MSDN http://msdn.microsoft.com/zh-cn/library/ms189493.aspx

 值得注意的是:

1、强烈建议不采用自动收缩文件。在SQL Server后续版本中将取消自动收缩选项。因为这必然会引起所有物理文件的整理,并根据要求截断日志流,并将新文件移动到新位置,,在某些情况下可能引起文件的破坏,并对系统的性能造成影响。
2、DBCC SHRINKFILE,有两个限制:一是磁盘的空间大小,如15M的文件指定收缩为12M,空间足够,则将最后3M强行截断,不保证数据的完整性,而这3M空间立即被文件系标志为自由空间使用;空间不够,则不操作。二是文件实际使用大小限制。如10M文件要收缩为5M,但文件实际使用为7M,则最终收缩为7M而不是5M。

(二)DBCC SHRINKDATABASE

 

收缩指定数据库中的数据文件和日志文件的大小。http://msdn.microsoft.com/zh-cn/library/ms190488.aspx

 有些时候我们经常看到收缩命令不起作用,或者文件大小没有任何变化,请注意以下几点:
1、DBCC SHRINKDATABASE不能收缩到数据库的最小MB数, 在创建数据库时指定最小为10M,那第无论如何都不会收缩到10M以下。此时应该用DBCC SHRINKFILE收缩单个文件的大小。

2、收缩参数target_percent,是指收缩后数据库可以留给文件的百分比。如100M的数据库文件,收缩参数百分比为25%。假如已经使用60M,则SQL会收缩文件到80M,即80M*25%=20M的自由空间,原有的60M不变。假如已经使用80M,则此时数据库不收缩。因为已经没有收缩空间。

3、 DBCC SHRINKDATABASE是基于文件系统的,所以其实执行的还是DBCC SHRINKFILE,只不过执行的时候把所有FileGroup统一处理而已。

 

先看到这里,下面将继续了解数据库文件的相关内容。

 

《Microsoft Sql server 2008 Internals》读书笔记--目录索引

 

邀月注:本文版权由邀月和优快云共同所有,转载请注明出处。
助人等于自助!   3w@live.cn

 

Microsoft SQL Server 2008 Internals (PDF 高清版) Microsoft SQL Server 2008 internals (PDF 高清版) 立即下载

相关推荐

Microsoft SQL Server 2008 Internals_中文

Microsoft SQL Server 2008 Internals_中文 Microsoft SQL Server 2008 Internals_中文 Microsoft SQL Server 2008 Internals_中文

《Microsoft Sql server 2008 Internals》读书笔记--第九章Plan Caching and Recompilation(9)

《Microsoft Sql server 2008 Internals》读书笔记订阅地址: http://www.cnblogs.com/downmoon/category/230397.html/rss 《Microsoft Sql server 2008 Internals》索引目录: 《Microsoft Sql server 2008 Internal》读书笔...

dfdfadsf3443的博客 201

Microsoft SQL Server 2008 Internals

本书主要论述了数据库存储和查询机制,也包含有事务和并发控制、DBCC 数据库维护的知识。(PDF 扫描版)

《数据库基础及实践技术——SQL Server 2008》一第3章 数据库的创建与管理

第3章 数据库的创建与管理 数据库是存放数据的“仓库”,用户在利用数据库管理系统提供的功能时,首先要将自己的数据保存到数据库中。本章介绍如何在SQL Server 2008中通过图形化方法和Transact-SQL语句创建用户数据库,同时介绍如何对用户数据库进行管理,包括对数据库空间的维护、分离和附加数据库、复制数据库等。 ...

weixin_34336526的博客 236

Professional SQL Server 2008 Internals and Troubleshooting

SQL Server 2008 Internals and Troubleshooting for DBA and developer

Microsoft SQL Server 2012 Internals

Microsoft SQL Server 2012 Internals 英文文字版,带目录

《Microsoft Sql server 2008 Internals》读书笔记--第三章Databases and Database Files(2)

《Microsoft Sql server 2008 Internals》索引目录:《Microsoft Sql server 2008 Internals》读书笔记--目录索引 在上篇文章中,主要介绍了创建数据库的基本语法和FileGroup的初步知识。需要注意的是:关于FileGroup如果你的系统是用Raid设备直接存放data文件,则不需要再借助FileGroup,因为FileGroup

邀月周记 3275

基于Python的手语识别项目(简单版)

总之,看似简单的代码,实则花费了我不少的时间和精力,我曾无数次在深夜的灯光下,与代码为伴,只为了一点点优化,一丝丝提升。让我们一起,以尊重原创的精神,推动编程领域的发展,让这份热爱和技术的力量,照亮更多人的前行之路。模型的建立(---------------本人采用的是开源的asl-alphabet手势识别库,记得放在路径下--------------)current_dir需要根据自己的路径修改!current_dir需要根据自己的路径修改!current_dir需要根据自己的路径修改!

lusen_j的博客 1966

《Microsoft Sql server 2008 Internals》读书笔记--第三章Databases and Database Files(3)

《Microsoft Sql server 2008 Internals》读书笔记--目录索引  在上篇文章中,主要简单介绍了数据库的存放机制和snapshot的简单应用。下来我们看看一个基本的系统数据库Tempdb,关于tempdb,MSDN有详细的描述,请参考;http://msdn.microsoft.com/zh-cn/library/ms190768.aspx 一些关于tempdb的基本

邀月周记 3504

AGV路径规划实战:如何用Python+ROS实现激光SLAM导航(附避障代码)

本文提供了一份基于Python和ROS实现AGV激光SLAM导航的实战指南。内容涵盖从Docker环境搭建、激光雷达数据处理、Gmapping建图,到Move_Base全局/局部路径规划与TEB局部规划器配置的全流程。重点解析了如何通过参数调优实现稳定导航,并附带了紧急避障代码,帮助开发者快速构建具备自主路径规划与实时避障能力的AGV系统。

pepsi的博客 1233

Oracle登录报错ORA-12560?5分钟搞定TNS协议适配器错误的完整修复指南

本文详细解析了Oracle登录报错ORA-12560(TNS协议适配器错误)的成因与解决方案。从基础服务检查到高级网络配置排查,提供了一套完整的修复流程,帮助数据库管理员快速解决连接问题,确保Oracle数据库的稳定运行。

weixin_29278805的博客 519
上一篇: 乔致庸毕生的三大项目之三:汇通天下、货通天下
下一篇: 程序物语(六):探寻你的与众不同之处
downmoon
博客等级 码龄24年 1676粉丝 494原创
评论 7
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值