收缩数据库
数据库中的每个文件都可以通过删除未使用的页的方法来减小。尽管数据库引擎会有效地重新使用空间,但某个文件多次出现无需原来大小的情况后,收缩文件就变得很有必要了。数据和事务日志文件都可以减小(收缩)。可以成组或单独地手动收缩数据库文件,也可以设置数据库,使其按照指定的间隔自动收缩。
文件始终从末尾开始收缩。例如,如果有个5GB的文件,并且在DBCCSHRINKFILE语句中将target_size指定为4GB,则数据库引擎将从文件的最后一个1GB开始释放尽可能多的空间。如果文件中被释放的部分包含使用过的页,则数据库引擎先将这些页重新放置到文件的保留部分。只能将数据库收缩到没有剩余的可用空间为止。例如,如果某个5GB的数据库有4GB的数据,并且在DBCCSHRINKFILE语句中将target_size指定为3GB,则只能释放1GB。
自动数据库收缩
将AUTO_SHRINK数据库选项设置为ON后,数据库引擎将自动收缩具有可用空间的数据库。此选项可以使用ALTERDATABASE语句来进行设置。默认情况下,此选项设置为OFF。数据库引擎会定期检查每个数据库的空间使用情况。如果某个数据库的AUTO_SHRINK选项设置为ON,则数据库引擎将减少数据库中文件的大小。该活动在后台进行,并且不影响数据库内的用户活动。
将数据库设置为自动收缩
ALTERDATABASE(Transact-SQL)
手动数据库收缩
您可以使用DBCC语句或DBCCSHRINKFILE语句来手动收缩数据库或数据库中的文件。如果DBCC或DBCCSHRINKFILE语句无法回收日志文件中的所有指定空间,则该语句将发出信息性消息,指明必须执行什么 *** 作以便释放更多空间。有关收缩日志文件的详细信息,请参阅收缩事务日志。
在该过程中任意时间都可停止DBCC和DBCCSHRINKFILE *** 作,所有已完成工作都将保留。
在使用DBCC语句时,您无法将整个数据库收缩得比其初始大小更小。因此,如果数据库创建时的大小为10MB,后来增长到100MB,则该数据库最小只能收缩到10MB,即使已经删除数据库的所有数据也是如此。
但是,使用DBCCSHRINKFILE语句时,可以将各个数据库文件收缩得比其初始大小更小。必须对每个文件分别进行收缩,而不能尝试收缩整个数据库。
工具/原料
电脑 数据库
方法/步骤
1、首先,打开并连接Sql Server,在源数据库Source_db上右击,依次点击“编写表脚本为”→“CREATE到”→“新查询编辑器窗口”。
2、在第1步产生的编辑器中按”crtl+a“全选内容,右击选择“复制“。
3、右击点击”粘贴“,将代码中Source_db(源数据库名)改为target_db(目标数据库名)。
4、右键单击”执行“。
5、在目标数据库的表结构中即可看到被复制过来的数据。
环境
首先查下文档看这个参数怎么解释,可以看memory_target和 SGA、PGA 之间的 关系
Oracle 9i引入pga_aggregate_target,可以自动对PGA进行调整;
Oracle 10g引入sga_target,可以自动对SGA进行调整;
Oracle 11g则对这两部分进行综合,引入memory_target,可以自动调整所有的内存,这就是新引入的自动内存管理特性。
找到了原因就来解决问题,memory_target参数应该大于SGA+PGA的内存值
我多给点,那就多给点 给了3G
问题解决! 出现了新报错! good !
在这个系统不支持? (本机物理内存及可用内存都大于3G)
默认的最大一半内存大小在某些场合可能不够用,并且默认的inode数量很低一般都要调高些,这时可以用mount命令来管理它。
问题解决。启动成功
理解数据库规范化的意义
TechTarget中国原创数据库规范化是由Edgar Frank Codd提出的,他是IBM公司的一位计算机科学家,他在自己的论文《20世纪70年代大型共享数据银行数据关系模型》中首次提出这种说法。数据库规范化是一个过程,这个过程中需要对现存表结构进行修改,把表转化使遵循一系列先进的范式。
它着重于消除开发人员和他们项目的“电子表格综合症”。电子表格综合症是指开发人员倾向于在尽可能少的表中挤下尽可能多的信息。
早些时候,由于受电子表格的概念以及在电子表格中管理数据思路的影响,开发人员们一直采用与涉及电子表格相同的思路设计MySQL数据库。现在,再用这种方法设计MySQL数据库被认为是不明智的做法,因为这种电子表格综合症设计的表在每次数据库有很小的改变时,都要持续不断地进行重新设计。
在MySQL中实现数据库规范化的好处
通过智能数据分类,降低存储空间使用量是对MySQL实现数据库规范化的众多好处之一。它帮助实现了更好,更快,更强的搜索功能,因为它与早期基于混合实体的搜索方式相比,需要扫描更少的实体。通过数据库规范化,数据完整性也得以改善,因为它把所有数据分成单独的实体,并用关联数据在实体间建立强连接。
Mike Hillyer是之前MySQL AB的一位技术作家,他解释说:“数据库规范化的目标是确保每个表中所有非键列都直接依赖于主键:整个都是键,除了键没有其它。有了这个目标,随之而来还有一些好处,我们降低了冗余,减少了异常,提高了效率。”
数据规范化很容易做到
下面的例子将说明数据库规范化如何帮助实现MySQL中的良好设计。下面的表展示了需要在数据库中捕获的数据。
Chad Russell is a programmer and system administrator who owns his own internet hosting company Jon Stephens is a member of the MySQL AB documentation team
在上面展示的例子中,如果任意一个条件作为识别主键的话,会有大量的存储空间被浪费掉。因此,数据库规范化是必不可少的。这是一个循序渐进的过程,不能随意进行。下面的步骤可以帮你在MySQL中实现数据库规范化。转载仅供参考,版权属于原作者。祝你愉快,哦
你有类似MySQL Administrator软件么很小的,没有安装个,装好用它连接要弄的数据库,登陆服务器localhost或者ip地址,用户密码自己知道,默认数据库mysql,其他也可,选左边的restore按钮,右边下边有openbackupfile,点了就浏览到文件,在target数据库下拉到你要还原到的数据库,或者下拉到new数据库,new的话就得勾选option里的create if not exit选项,然后开始就可以了
也可以用语句的
mysql备份语句:
E:\MySQL Server 50\bin>mysqldump -uroot -padmin --default-character-set=utf8 --opt --extended-insert=false --triggers -R --hex-blob -x sampledb >sampledbsql
mysql还原前得先建立数据库再用下面的语句:
E:\MySQL Server 50\bin>mysql -uroot -padmin sampledb < sampledbsql
我比较喜欢可视化
第一步:首先,打开并连接Sql Server,在源数据库Source_db(源数据库名称)上右键,然后依次点击“编写表脚本为”→“CREATE到”→“新查询编辑器窗口”。
第二步:在第1步产生的编辑器中按”crtl+a“组合键全选内容,然后右键“复制“(或按"crtl+c"键)。
第三步:新建查询,然后右键”粘贴“(或ctrl+v);如图所示,将代码中Source_db(源数据库名)改为target_db(目标数据库名)。接着右键单击”执行“执行代码。
第四步:然后,在目标数据库的表结构中就可以看到被复制过来的表了。
表的数据内容复制:
第一步:选中目标数据库target_db,然后点击”任务“→”导入数据“。
第二步:进入”SQL Server导入导出向导“,根据提示步骤 *** 作。
第三步:选择数据源(源数据库)。
第四步:选择目标(目标数据库)、指定表复制或查询。
第五步:选择源表和源视图:设置源表和目标表后,单击“编辑映射”按钮,在d出窗口中选中“启用标识插入”。(否则后面会出错)
第六步:一直点击“下一步”至最后完成 *** 作。
首先我们需要在mysql管理工具上面新建一个表,也可以用mysql命令创建,表建立完成之后,你需要将表中的字段名字告诉给填写excel表的人员
打开excel表,按照程序提供的字段填写相应的数据此时注意下面几点:名字(我用红色标示出来了)需要跟程序提供的一样,其他的描述,表头可以不写都行
我使用的mysql管理工具是Navicat
for
MySQL,打开工具,选择表所在的数据库,然后点击数据库名字,右键数据,出来下拉菜单选择import
wizard
,有汉化版本的更明确d出一个选择界面,我们选择excel
file文件
点击next(下一步),我们选择我们对应的excel文件就行,然后再下面选在我们的文件内容在哪一个sheet中,也就是你的内容写在excel什么地方,这点需要注意,也是关键的地方,我的内容在sheet3中,所以我选择sheet3
,如图:
点击next
(此步骤也是关键步骤),需要注意2点:
1:filed
name
row
就是你的字段所在excel中的位置,也就是第几行(简单办法,一般就是英文对应的那一列)2:first
data
row(从哪一行开始执行),数据从哪一行开始呢,我这里选择的是3,4
点击next
我们选择
target
table
目标对应的数据库,选择你要导入到哪个数据库中表中
如果到上面一步没有问题的话,我们默认next到最后
就行了然后打开表就能看到数据跟excel表中的一样
以上就是关于SQLServer中的收缩数据库是什么意思(sql收缩数据库命令)全部的内容,包括:SQLServer中的收缩数据库是什么意思(sql收缩数据库命令)、如何将A数据库的数据迁移到B数据库中、Oracle数据库pfile中的参数memory_target等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)