广告
返回顶部
首页 > 资讯 > 数据库 >sqlserver表和库的管理方法
  • 853
分享到

sqlserver表和库的管理方法

2024-04-02 19:04:59 853人浏览 安东尼
摘要

本篇内容介绍了“sqlserver表和库的管理方法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1.1.&

本篇内容介绍了“sqlserver表和库的管理方法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

1.1. ql server 2008R2如何存储数据

数据库在磁盘上是以文件为单位存储的,由数据文件和事物日志文件组成。一个数据库至少应该包含一个数据文件和一个事物日志文件。

数据库创建在物理介质(磁盘)上的一个或多个文件上,它预先分配了被数据和事物日志所要适用的物理存储空间。存储数据的文件叫做数据文件,数据文件包含数据和对象,如表和索引。存储事物日志的文件叫做事物日志文件(又称日志文件)。

SQL Server 2008 R2数据库有一下类型的文件

1. 主数据文件

2. 辅数据文件

3. 事物日志文件

4. 文件流

举例说明

--创建数据库

create database schoolDB

Go

use schoolDB

go

这样创建完的数据库只有一个数据文件和一个事物日志文件,查看方式在创建的schoolDB上右键选择“属性”--“文件”

sqlserver表和库的管理方法

可以在界面中单击“添加”增加新的数据文件schooldb2,以后再schooldb数据库中创建新的表,表中的数据就会存放在schooldb和schoolDB2数据文件中。

sqlserver表和库的管理方法

数据文件在数据库中存放的时候都有标识,我们可以通过sp_helpdb schoolDB

sqlserver表和库的管理方法

数据文件结构

数据文件1和数据文件3的结构如果所示:

数据文件由64kb大小的区(extend)组成的,每个区由8个8KB的连续的页组成的。

sqlserver所能识别的最小存储单元被称为页,一个页的大小是8KB,是sql server 存储数据的单位。

在数据库中一页的大小是8KB,在计算机中1KB就是1024,所以1页可以存放1024*8=8192个字节

sqlserver表和库的管理方法

如何根据表的记录数量估算占用的磁盘空间

1.先算一个表中一行有多少个字节,例如学号字段6个字节,姓名字段8个字节,出生日期字段多少个字节

2.算一个页能够存多少行

3.数据库中的表每天增加多少行记录,就能够算出每天要增加多少硬盘空间,这样就可根据数据量估算规划多大的空间。

在数据库中创建一张Tstudent表

create TABLE TStudent (

  StudentID varchar(10) NOT NULL,

  Sname varchar(10) DEFAULT NULL,

sex char(2) DEFAULT NULL,

cardID varchar(20) DEFAULT NULL,

  Birthday datetime DEFAULT NULL,

  Email varchar(40) DEFAULT NULL,

  Class varchar(20) DEFAULT NULL,

enterTime datetime DEFAULT NULL

 )

go

sqlserver表和库的管理方法

10个字节+10个字节+2个字节+20字节+8字节+40字节+20字节+8个字节=118字节

Tstudent表的一个行有118个字节

如果每天增加10000条记录,10000条记录占多少页?

1页可以存放1024*8=8192个字节,抛去标头96字节,真正存放的字节数就8192-96=8096字节。

一页能存8096字节,一页能够存8096/118=68条记录

10000行有多少页?10000/68=148(页)

一页是8KB,148*8==1184KB

在Tstudent表中存放10000条记录需要预备出来1MB多的磁盘空间。这样就可以根据每天增加的记录数,合理规划好磁盘空间了。

现在Tstudent表中还没有插入任何记录,所以占用了0页的数据

提供查看数据文件页数的命令

select OBJECT_NAME(i.object_id) as 表名,data_pages as 数据页数

from sys.indexes as i

join sys.partitions as p ON p.object_id=i.object_id and p.index_id=i.index_id

join sys.allocation_units as a ON a.container_id=p.partition_id

where i.object_id=object_id('dbo.TStudent')

sqlserver表和库的管理方法

执行教学环境中的存储过程,添加10000条记录

sqlserver表和库的管理方法

这个页数和我们刚才算出来的有些差距,这是正常的,每一页可能并没有插入68条记录。

1.1. 事物日志

事物是一个或多个T-SQL语句的集合,事物有一个特性:要么执行成功,要么执行失败。每个sql server数据库都具有事物日志,用于记录所有事物的SQL语句。当发生数据灾难时候,通过事物日志记录的T-SQL语句可以恢复数据库。

如果系统出现故障,sql server将使用事物日志重做(前滚)所有已确认的事物,撤销(回滚)所有未完成的事物。1.1. 创建数据库(扩展/收缩)

使用图形界面创建数据库,在对象资源管理器中,右击“数据库”节点,在弹出的快捷菜单中选择“新建数据库”命令,打开“新建数据库”窗口,设置数据库名称为“class”,制定数据库的所有者,默认创建数据库的用户将成为该数据库的所有者。主数据文件初始值为3mb,自动增长值为1mb,当数据文件或日志文件空间使用完之后,会根据设定的自动增长值增大文件的容量。

在路径列中可以设置数据文件和日志文件的保存路径。单击“确定”之后一个新的数据库就建立成功了,随之会生成两个文件一个是包含数据文件的.mdf,一个是包含日志信息的.ldf文件。

sqlserver表和库的管理方法

创建数据库之前,必须先确定数据库的名称,所有者(创建数据库的用户),大小以及存储该数据文件和事物日志文件的位置。

如果要对数据库做数据库级别的设置

sqlserver表和库的管理方法

在数据库属性中选择“选项”,在右侧可以修改数据库相关的属性。

sqlserver表和库的管理方法

1.1.1. 扩展数据库

当数据库中的数据文件和日志文件被充满时候,需要为数据文件和日志文件分配更多的空间。sql server 可以根据在新建数据库时定义的增长参数自动扩展数据库,也可以通过在现有的数据文件上分配更多的文件空间,或者在另一个新的数据文件上分配空间来手动扩展数据库。

扩展数据库时,必须使数据库的容量至少增加1mb,还可以指定允许文件增长到的最大值,这样可以防止文件无限制的增长,导致用尽整个磁盘空间。

举例说明:

将class数据库的class数据文件大小设置为100MB,不自动增长,然后添加一个新的数据文件,文件名为“class1”,初始文件大小设置为“50MB”,自动增长,最大文件大小设置为“500MB”

在对象资源管理器中,右击class数据库,在弹出的快捷菜单中选择“属性”命令,打开“数据库属性-class”窗口,在“数据库属性-class”窗口的“选择页”中选择“文件”选项,打开“文件”选择页

sqlserver表和库的管理方法

1.1.1. 收缩数据库

数据库在使用一段时间后,时常会因为数据删除而造成数据库中空闲空间增多的情况,这时就需要减少分配给数据库文件和事物日志文件的磁盘空间,以免浪费磁盘空间。当数据库中没有数据时,可以修改数据库文件属性,直接改变其占用空间,但是当数据库中有数据时,这样做会破坏数据库中的数据,因此需要使用收缩的方式来缩减数据库空间。

数据库中的每个文件都可以通过删除未使用的空间的方法来减小,SQL server允许通过缩小数据库,把不使用的空间释放出来,数据文件和日志文件都可以收缩。可以采用手动收缩和自动收缩数据库。

手动收缩数据库的方法

sqlserver表和库的管理方法

从图中可以看出来即可以选择收缩数据库,也可以选择单独收缩某个数据文件。

收缩数据库:

sqlserver表和库的管理方法

在收缩数据库时,无法将整个数据库收缩到比初始大小更小,如果数据库创建时的大小是10mb,后来增长到10mb,则该数据库最小只能收缩到10mb,即使已经删除了所有数据也是10mb。但是收缩文件时,可以将数据库文件收缩得比其初始大小更小

收缩数据文件

选择--“任务”--“收缩”--“文件”命令,打开收缩文件对话框

sqlserver表和库的管理方法

在“文件类型”下拉列表框中选择“数据”选项,也可以在这里选择收缩日志文件。”当前分配的空间“选项和”可用空间“选项显示了该文件的占用空间,使用空间和收缩的百分比。

释放未使用的空间:将释放文件中所有未使用的空间,并将文件收缩到上次分配的大小,这样将减小文件大小,但不移动任何数据。

在释放未使用空间前重新组织页:将释放文件中所有未使用的空间,并尝试重新定位到未分配的空间。这里需要指定”将文件收缩到“选项的值。

通过将数据迁移到同一文件组中的其他文件来清空文件:将指定文件中所有数据迁移至同一文件组中的其他文件中,然后可以删除空文件。

根据需要确定选项,然后单击“确定”,执行收缩操作。

自动收缩数据库

可以通过设置“数据库属性--class”窗口中的“选项”选择页中的“自动收缩”选项参数来实现自动收缩功能。将“自动收缩”选项设置为“true”后,将自动收缩可用空间的数据库。

sqlserver表和库的管理方法

“sqlserver表和库的管理方法”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

您可能感兴趣的文档:

--结束END--

本文标题: sqlserver表和库的管理方法

本文链接: https://www.lsjlt.com/news/59213.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • sqlserver表和库的管理方法
    本篇内容介绍了“sqlserver表和库的管理方法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1.1.&...
    99+
    2022-10-18
  • 数据库和表的管理
    1、数据库文件类型:①数据文件主要数据文件:后缀 .mdf ,有且只有一个,默认已创建,包含启动信息、数据对象次要数据文件:后缀 .ndf ,可有任意个,默认无文件流数据:存储图片、音频等文件②事务日志文件...
    99+
    2022-10-18
  • Oracle数据库的表空间基本管理方法
    这篇文章主要讲解了“Oracle数据库的表空间基本管理方法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Oracle数据库的表空间基本管理方法”吧!一、概述...
    99+
    2022-10-18
  • 查sqlserver表结构说明的方法
    一、查出某个库的所有表名USE database_name GO SELECT tab.name      &nbs...
    99+
    2022-10-18
  • sqlserver 数据库收缩的方法
    1.右键-属性-选项-简单模式 2.右键-任务-收缩-文件 3.右键-任务-收缩-数据库 在SQL Server中经常遇到事务日志变大的情况,除了将数据库设置为“自动收缩”外,还可以使用下面的SQL命...
    99+
    2022-10-18
  • SQL数据库和表的管理
          SQL数据库和表的管理(二)利用SSMS数据库管理工具登陆数据库创建一个名为db_class的数据库设置数据库为自动收缩将数据库分离,以便数据库...
    99+
    2022-10-18
  • SQLserver 数据库导入MySQL的方法
    文章目录 1、准备好要使用的文件和工具1.1、目标数据库---Mysql。1.2、源数据库---SQLserver1.3、工具:SQLyog (需要旗舰版/企业版/终极版),这里给大家推荐我使用的下载链接:https://pan.b...
    99+
    2023-12-23
    数据库 sqlserver mysql
  • 数据库和表的基本管理
    我们先来了解数据库中的文件类型:主数据文件:包含数据库的启动信息,指向数据库中的其他文件,每个数据库都有一个主数据文件(有且只有一个),推荐文件扩展名是.mdf;辅助数据文件:除主数据文件以外的所有数据文件...
    99+
    2022-10-18
  • sqlserver 给表添加索引的操作方法
    sqlserver 如何给表添加索引 -- 创建一个新的非唯一聚集索引 CREATE INDEX idx_column1 ON TableName (Column1); -- 创建一个新的唯一非聚集索引 CRE...
    99+
    2023-10-18
    sqlserver 表添加索引 sqlserver 添加索引
  • sqlserver:查询数据库大小的方法
    --总部要求每一个月,获取一次ERP数据库增长大小。 --原文出处:http://www.jb51.net/article/30993.htm SELECT DB_NAME(databas...
    99+
    2022-10-18
  • SqlServer数据库远程连接的方法
    本篇内容介绍了“SqlServer数据库远程连接的方法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、身份验证配置在sqlserver服务...
    99+
    2023-06-20
  • SqlServer备份和恢复的方法
    本篇内容介绍了“SqlServer备份和恢复的方法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!SqlSe...
    99+
    2022-10-18
  • SQLServer的数据库管理的分析是怎样的
    今天就跟大家聊聊有关SQLServer的数据库管理的分析是怎样的,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。数据库管理  可以使用SSMS工具来设...
    99+
    2022-10-19
  • 2 数据库和表的管理 步骤
     2.sqlserver 数据库和表的管理防伪码:书山有路勤为径 学海无涯苦作舟 实验一:实验环境:公司安装了SQL SERVER 2008企业版,现在完成如下任务:1.创建一个名为benet的数...
    99+
    2022-10-18
  • SQLServer数据库的移动方法有哪些
    本篇内容主要讲解“SQLServer数据库的移动方法有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“SQLServer数据库的移动方法有哪些”吧!  SQL...
    99+
    2022-10-18
  • SQLServer数据库误操作恢复的方法
    目录前言一、恢复数据实例1.创建初始数据2.保证数据恢复的前提条件3.模拟不小心误操作4.开始恢复二、恢复数据原理1.数据库文件类型2.使用bak恢复数据原理总结参考前言 在日常开发...
    99+
    2023-01-30
    SQLServer数据库恢复 SQLServer 恢复
  • SQLServer 表的索引碎片查询和处理
    目录1.查看索引的碎片率2.reorganize索引3.rebuild索引4.rebuild表上所有的索引5.rebuild数据库中所有的索引  1.查看索引的碎片率 SELECT object_name(ips...
    99+
    2023-04-30
    SQLServer 表索引碎片 SQLServer 索引碎片
  • SQLServer表的索引碎片查询和处理
    目录1.查看索引的碎片率2.reorganize索引3.rebuild索引4.rebuild表上所有的索引5.rebuild数据库中所有的索引  1.查看索引的碎片率 SELEC&#...
    99+
    2023-05-18
    SQLServer 表索引碎片 SQLServer 索引碎片
  • 教你恢复SQLSERVER的master系统库的方法
    目录一、问题描述二、解决方案2.1 什么时候必须恢复 SQL Server 主数据库?2.2 恢复SQLSERVER的master库的两种方法2.2.1 方法一:SQLSERVER实例能正常启动2.2.2 方法二:SQL...
    99+
    2022-09-22
  • sqlserver帐号被禁用的处理方法
    今天就跟大家聊聊有关sqlserver帐号被禁用的处理方法,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。若发现sqlsrver所有帐号不小心被禁用了...
    99+
    2022-10-19
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作