`
isiqi
  • 浏览: 16551682 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

SQL Server学习(三)

阅读更多

管理数据库
数据文件和日志文件的增长
当对多个文件使用文件自动增长方式时,SQL Server会对文件组内的所有文件使用按比例填充策略,而不是先写满一个文件,再写下一个.

修改数据库命令
举例:
ALTER DATABASE Sample
MODIFY FILE ( NAME = 'SampleLog',
FILENAME = 'D:\Data\Sample.ndf',
size = 16MB)
GO
//重命名文件

ALTER DATABASE Sample
ADD FILE
(NAME = SampleData2,
FILENAME = 'D:\Data\Sample2.ndf',
SIZE = 15MB,
MAXSIZE = 20MB)
GO
//增加文件
改完后可以使用“exec sp_helpfile”察看修改效果

优化性能的措施
(1)为数据文件和日志文件分配足够的初始大小,避免频繁地进行自动增长处理;
(2) 如果有多个数据库的话,可以设置数据文件大小的最大值;
(3)将数据文件和日志文件的增长增量设置为足够大的值,避免频繁地进行自动增长处理。

重点:
监测日志的三种手段:企业管理器、DBCC SQLPERF ( LOGSPACE ) 语句、Windows 2000 系统监测器;
产生大量日志的情况;
扩展日志的两种方法:企业管理器、ALTER DATABASE 语句;

注意:
如果事务日志耗尽空间,SQL?Server 将无法记录事务以及不允许更改数据库;
Windows 系统监视器通过“开始”->“管理工具”->“性能”->“系统监视器”访问。

提供有关所有数据库中的事务日志空间使用情况的统计信息。
use master
dbcc sqlperf(logspace)

收缩数据库或文件
收缩整个数据库:
1.企业管理器
2.DBCC SHRINKDATABASE 语句
DBCC SHRINKDATABASE (数据库名 [, 目标百分比]
[, {NOTRUNCATE | TRUNCATEONLY}])
举例:如果已经用了100MB数据库文件中的60MB,可以指定收缩百分比为25%,然后SQL Server把文件收缩至80M(即60/(1-25%))。也就是:80MB的数据库文件拥有它25%的剩余空间。
如果已经用了80MB的数据库文件,SQL Server将不能收缩此文件。
如执行:dbcc shrinkdatabase(reference, 25)
得到:72768384768384

收缩语句中的选项
因为 DBCC SHRINKDATABASE 逐个文件地收缩数据库,所以实际收缩所使用的机理与 DBCC SHRINKFILE 的相同
NOTRUNCATE 选项导致在数据库文件中保留所释放的文件空间。 SQL Server 只通过将数据移动到文件的前面压缩数据。默认情况是所有释放的文件空间返回给操作系统
TRUNCATEONLY 选项导致文件中的所有未使用的空间释放给操作系统。不尝试将其重新分配到未分配页。当使用TRUNCATEONLY 时,参数 target_size 和 target_percent 被忽略
EMPTYFILE 选项,只适用于 DBCC SHRINKFILE,将清空数据文件的内容并将数据移动到同一文件组中的其他文件


收缩数据库中的一个数据文件:
1.企业管理器
2.DBCC SHRINKFILE 语句
DBCC SHRINKFILE ({文件名 | 文件id} [, 目标大小]
[, { EMPTYFILE | NOTRUNCATE | TRUNCATEONLY}])
如执行:DBCC SHRINKFILE ( SampleData )
得到:7112801280168168

自动收缩数据库:
设置数据库选项 autoshrink 为 true

注意:
(1)是否能够收缩数据库与数据库的使用空间相关。如果数据库文件的使用空间超过收缩数据库后的数据库文件大小,则无法收缩数据库文件,此时文件的大小不会改变。

(2)SQL Server不会把文件收缩到比数据所占空间更小,也不会把文件大小收缩到超过Create database语句中size参数指定的大小。

分离和附加数据库
SQL Server 2000 允许分离数据库的数据和事务日志文件,然后将其重新附加到另一台服务器,甚至同一台服务器上
分离数据库
分离数据库将从 SQL Server 删除数据库,但是保持组成该数据库的数据和事务日志文件中的数据库完好无损
分离数据库语法:EXEC sp_detach_db 数据库名
分离数据库要求没有用户正在使用数据库,数据库中没有未完成的事务,并且在内存中没有这个数据库的脏页
一旦数据库被分离,其条目就从 master 数据库的 sysdatabases 表中被移除。从 SQL Server 的角度看,数据库似乎被删除了但是其物理文件仍然保存在磁盘上

举例:
use master //关闭当前对Sample的操作
exec sp_detach_db 'Sample'
go
//分离Sample

exec sp_helpdb
go
//察看Sample已分离

exec sp_attach_db 'Sample',
@filename1 = 'D:\Data\Sample.mdf',
@filename2 = 'D:\Data\Sample.txt',
@filename3 = 'D:\Data\Sample2.ndf',
@filename4 = 'D:\Data\orderYear.ndf'
go
//附加数据库

exec sp_helpdb
go
//察看Sample已附加上

删除数据库的方法
企业管理器
DROP DATABASE 语句
DROP DATABASE 数据库名 [,…n]
可以一次删除多个数据库
如“DROP DATABASE Sample”
删除数据库的限制:
1)不能删除:
2)正在被还原的数据库
3)任何用户因为读或写而打开的数据库
4)正在发布它的任何一张表作为 SQL?Server 复制组成部分的数据库
5)系统数据库


分离数据库和删除数据库的区别
(1)分离的数据库文件仍然存在,操作系统认为它们是已经关闭的文件,所以可以复制、移动和删除这些文件。
(2)使用drop database命令删除数据库同时,也删除了操作系统中的数据文件。在删除之前,只做是否有人连接到数据库的判断,不做脏页、是否打开事务的检查。

数据结构介绍:
书本47页

推荐操作 重点:
创建或修改数据库后,请立即备份 master 数据库;
这很重要,因为 master 数据库含有 system 目录,而 system 目录含有使用 SQL Server 的重要信息;
当使用自动文件增长时,请指定最大大小;
这将防止任何一个文件将整个磁盘填满;
指定大的自动增长增量以避免频繁的文件增长;
这将减少SQL?Server 管理活动并帮助防止文件在硬盘上形成碎片;
更改默认文件组;
若数据库含有多个文件组,请将默认文件组指定为用户定义文件组的一个。这将防止任何未可预知的表的增长负面影响主文件组中的系统表。

设置数据库恢复模型:
ALTER DATABASE Sample SET RECOVERY SIMPLE//设置数据库Sample恢复模型为简单。

分享到:
评论

相关推荐

    SQL SERVER 2008 学习计划

    SQL SERVER 2008 学习计划 SQL Server 2008 是一个功能强大且功能齐全的关系数据库管理系统。本学习计划旨在帮助学习者快速掌握 SQL Server 2008 的基本概念、安装、配置、数据库设计、数据操作、存储过程、触发器...

    SQL SERVER 学习资料

    通过学习"SQL SERVER学习资料",你可以逐步建立起对SQL Server全面的认识,从基础操作到高级应用,从理论到实践,不断提升自己的数据库管理和开发技能。同时,不要忘记实践是检验学习效果的最佳途径,尝试在实际环境...

    sqlserver学习资料

    本压缩包中的学习资料涵盖了SQL Server的基础知识到高级特性,旨在帮助用户全面掌握这一强大的数据库系统。 1. **SQL基础知识**:SQL(Structured Query Language)是用于管理关系数据库的标准语言,包括数据查询、...

    SQL Server 2008完全学习手册视频教程.zip

    第1章 SQL Server 2008入门知识 SQL 2008完全学习手册 视频教程 第2章 使用SQL Server 2008管理工具 SQL 2008完全学习手册 视频教程 第3章 管理数据库 SQL 2008完全学习手册 视频教程 第4章 SQL Server 2008数据表...

    sql server学习资料

    本压缩包“sql server学习资料”提供了一套全面的学习资源,适合数据库新手入门,也对经验丰富的数据库管理员有提升作用。 在SQL Server的学习过程中,首先需要理解基础概念。SQL(Structured Query Language)是...

    精通sqlserver学习文档

    《精通SQL Server学习文档》是一份全面且深入的教程,旨在帮助初学者和有经验的数据库管理员提升在SQL Server领域的技能。SQL(Structured Query Language)是用于管理关系数据库的强大工具,无论是在数据查询、更新...

    sqlserver 学习资料

    SQL Server学习资料 一、Transact-SQL简介 Transact-SQL(T-SQL)是一种SQL方言,扩展了ANSI SQL的功能,提供了编写结构化程序的能力。T-SQL可以控制SQL Server的属性,提供了逻辑控制结构,弥补了ANSI SQL的不足...

    SQLServer学习总结(SQLServer&MSDE)

    SQLServer和桌面版MSDE学习总结(SQLServer&MSDE)

    sql server2019安装包

    SQL Server 2019是Microsoft推出的一款关系型数据库管理系统,是SQL Server系列中的一个重要版本。它提供了强大的数据存储、处理和分析能力,广泛应用于企业级数据库应用开发和数据分析。在本安装包中,主要包含的是...

    基于sql server 2005学习sql

    《基于SQL Server 2005学习SQL》 SQL(Structured Query Language)是用于管理和处理关系数据库的标准语言,而SQL Server 2005作为微软公司的一款强大的数据库管理系统,为开发者提供了广泛的功能和工具,使其在...

    SQL Server 学习笔记

    在本文中,我们将深入探讨SQL Server的学习笔记,涵盖其体系结构、数据库类型特点、OLTP与OLAP的区别,以及一些关键的管理工具。 首先,让我们了解Microsoft SQL Server 2008系统的体系结构。这个系统由四个主要...

    非常详细非常有用的sqlserver学习资料

    这份“非常详细非常有用的sqlserver学习资料”包含了丰富的资源,旨在帮助用户深入理解和掌握SQL Server的相关知识。 首先,理解SQL Server的基本概念至关重要。SQL(结构化查询语言)是用于管理和处理关系数据库的...

    sql server学习手册以及t-sql优化方案.zip

    《SQL Server学习手册》与T-SQL优化方案详解 SQL Server 2008作为Microsoft公司的一款企业级数据库管理系统,广泛应用于数据存储、处理和分析。对于任何希望深入理解和掌握SQL Server的人来说,全面了解其基础知识...

    sqlserver数据库精简版

    尽管"SQL Server数据库精简版"可能不包含所有这些特性,但它仍能提供基础的数据库功能,并且是初学者了解和学习SQL Server的良好起点。安装SQLEXPR32_CHS.EXE文件,用户就可以开始体验SQL Server Express带来的...

    深入浅出SQLServer学习资源

    在IT领域,数据库是至关重要的组成部分...以上只是SQL Server学习资源的部分要点,实际学习过程中还需要结合具体案例和实践经验,不断深化理解。通过持续学习和实践,你可以成为SQL Server的专家,解决各种数据库问题。

    SQLserver2008学习笔记

    SQL server 2008

    SQL Server 2014基础入门视频教程 (40集,含课件)

    SQL Server 2014基础入门视频教程 (40集,含课件) 1.SQL Server 2014简介.mp4 2.SQL Server 2014硬件和软件要求.mp4 3.SQL Server 2014数据库安装.mp4 4.SQL Server 2014数据库创建.mp4 5.SQL Server 2014...

    sql server 帮助文档官方版

    此外,SQL Server 还提供了机器学习服务,用户可以使用 Python、R 语言等来开发机器学习模型。 监视和优化 SQL Server 提供了多种监视工具,包括使用 Azure Data Studio、cmdlet 和笔记本等。用户可以使用这些工具...

Global site tag (gtag.js) - Google Analytics