`
isiqi
  • 浏览: 16340614 次
  • 性别: 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学习资料

    本压缩包“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 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的专家,解决各种数据库问题。

    sql server2019安装包

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

    SQLserver2008学习笔记

    SQL server 2008

    sql server 帮助文档官方版

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

    sql server客户端连接工具

    尽管SQL Server 2000已过时,学习其客户端工具的使用仍然有价值,因为许多核心概念和T-SQL语法在新版本中仍然适用。 在实际工作中,了解并熟练掌握这些客户端工具能极大地提高数据库管理效率,确保SQL Server实例的...

    Sql Server 2014 安装包

    - 学习SQL Server,你需要掌握T-SQL语言,理解数据库架构设计,熟悉SQL Server的安全机制和备份恢复策略。 - 对于开发和管理员,理解并运用SQL Server的性能调优工具和技巧至关重要,如查询分析器、动态管理视图...

Global site tag (gtag.js) - Google Analytics