仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 814|回复: 7
打印 上一主题 下一主题

[学习教程] MSSQL编程:减少SQL日记

[复制链接]
小女巫 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:34:09 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
MySQL最初的开发者的意图是用mSQL和他们自己的快速低级例程(ISAM)去连接表格。经过一些测试后,开发者得出结论:mSQL并没有他们需要的那么快和灵活。
--减少SQL日记

--execp_compdbtest

createprocp_compdb
@dbnamesysname,--要紧缩的数据库名
@bkdatabasebit=1,--由于分别日记的步骤中,大概会破坏数据库,以是你能够选择是不是主动数据库
@bkfnamenvarchar(260)=--备份的文件名,假如不指定,主动备份到默许备份目次,备份文件名为:数据库名+日期工夫
as
--1.清空日记
exec(DUMPTRANSACTION[+@dbname+]WITHNO_LOG)

--2.截断事件日记:
exec(BACKUPLOG[+@dbname+]WITHNO_LOG)

--3.压缩数据库文件(假如不紧缩,数据库的文件不会减小
exec(DBCCSHRINKDATABASE([+@dbname+]))

--4.设置主动压缩
exec(EXECsp_dboption+@dbname+,autoshrink,TRUE)

--前面的步骤有必定伤害,你能够能够选择是不是应当这些步骤
--5.分别数据库
if@bkdatabase=1
begin
ifisnull(@bkfname,)=
set@bkfname=@dbname+_+convert(varchar,getdate(),112)
+replace(convert(varchar,getdate(),108),:,)
select提醒信息=备份数据库到SQL默许备份目次,备份文件名:+@bkfname
exec(backupdatabase[+@dbname+]todisk=+@bkfname+)
end

--举行分别处置
createtable#t(fnamenvarchar(260),typeint)
exec(insertinto#tselectfilename,type=status&0x40from[+@dbname+]..sysfiles)
exec(sp_detach_db+@dbname+)

--删除日记文件
declare@fnamenvarchar(260),@svarchar(8000)
declaretbcursorlocalforselectfnamefrom#twheretype=64
opentb
fetchnextfromtbinto@fname
while@@fetch_status=0
begin
set@s=del"+rtrim(@fname)+"
execmaster..xp_cmdshell@s,no_output
fetchnextfromtbinto@fname
end
closetb
deallocatetb

--附加数据库
set@s=
declaretbcursorlocalforselectfnamefrom#twheretype=0
opentb
fetchnextfromtbinto@fname
while@@fetch_status=0
begin
set@s=@s+,+rtrim(@fname)+
fetchnextfromtbinto@fname
end
closetb
deallocatetb
exec(sp_attach_single_file_db+@dbname++@s)

GO

MyISAMMysql的默认数据库,最为常用。拥有较高的插入,查询速度,但不支持事务
愤怒的大鸟 该用户已被删除
沙发
发表于 2015-1-27 07:54:09 | 只看该作者
如果你是从“学习某一种数据库应用软件,从而获得应聘的资本和工作机会”的角度来问的话。
活着的死人 该用户已被删除
板凳
发表于 2015-2-5 04:44:43 | 只看该作者
如果你是从“学习某一种数据库应用软件,从而获得应聘的资本和工作机会”的角度来问的话。
柔情似水 该用户已被删除
地板
发表于 2015-2-11 05:17:46 | 只看该作者
可能有的朋友会抱怨集成的orderby,其实如果使用ranking函数,Orderby是少不了的。如果担心Orderby会影响效率,可以为orderby的字段建立聚集索引,查询计划会忽略orderby操作(因为本来就是排序的嘛)。
飘飘悠悠 该用户已被删除
5#
发表于 2015-3-1 22:30:19 | 只看该作者
比如日志传送、比如集群。。。
小女巫 该用户已被删除
6#
 楼主| 发表于 2015-3-11 00:46:43 | 只看该作者
对于微软系列的东西除了一遍遍尝试还真没有太好的办法
小妖女 该用户已被删除
7#
发表于 2015-3-17 17:10:54 | 只看该作者
无法深入到数据库系统层面去了解和探究
再见西城 该用户已被删除
8#
发表于 2015-3-24 15:12:33 | 只看该作者
个人感觉没有case直观。而且默认的第三字段(还可能更多)作为groupby字段很容易造成新手的错误。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-5-17 08:24

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表