SQL使用
数据处理是当前数据库常见的应用。一些数据库组成DATA mart从数据源里抽取关心的表进行聚合,将结果推送到算法中进行处理,从而高性能的回答用户的查询。
总所周知,Log文件是记录数据库操作的文件,对数据库的完整性,一致性有着重要的意义。作为数据处理的一个常见后果是Log文件的超级庞大。虽然将数据库的恢复模式设置成Simple可以提醒数据库尽量使用已有的Log空间,而不是申请新的,后者将会导致文件的增长。但是对于活动的事务,如果一个事务中记录的Log 行数很多,必然会导致Log文件的庞大。有时这种事务是不能避免的,因为至少一个SQL语句就是一个天然的事务。加入你的Update语句涉及到3千万行数据,结果必然导致众多的Log行被写入,当Update结束的时候,log文件就会增加到200G。
问题是当事务结束后,log文件并不会因为事务已经提交而自动缩短。后果就是10几个数据库的log 文件都处在自己的最大值上,也许这需要几个T的空间,但事实上,同一时刻只有一个数据库在活动,也就是说500G就够了。
下面的这个SQL可以自动缩短数据库服务器上所有的Log文件。
declare @ssql nvarchar(4000)
set @ssql= '
if ''?'' not in (''tempdb'',''master'',''model'',''msdb'') begin
use [?]
declare @tsql nvarchar(4000) set @tsql = ''''
declare @iLogFile int
declare LogFiles cursor for
--找出所有的Log文件,Log文件的status是0x40
select fileid from sysfiles where status & 0x40 = 0x40
open LogFiles
fetch next from LogFiles into @iLogFile
while @@fetch_status = 0
begin
--使用DBCC名字缩短Log文件
set @tsql = @tsql + ''DBCC SHRINKFILE(''+cast(@iLogFile as varchar(5))+''
相关文档:
废话少说,(已经有句废话了.)
看表
语句: SELECT * from C
//---------------------------------------
Cno Cname Teacher
---- ---------- --------
1 语文 祁静
2 &n ......
Author : wufeng4552 Date : 2009-10-23
1、文件和文件组的含义与关系
每个数据库有一个主数据文件.和若干个从文 ......
本节主要介绍使用CLR创建标量函数,表值函数和聚合函数。
所谓标量函数指的就是此函数只返回一个值。表值函数返回值是一个表。聚合函数是在select语句中使用的,用来聚合一个结果集,类似于Sum()或是Count()等内置的函数,而且真正的自定义聚合函数目前只能用CLR来实现。
下面的例子使用了SQLServer自带的pubs数据库。
1 ......
在SQL语句优化过程中,我们经常会用到hint,现总结一下在SQL优化过程中常见Oracle HINT的用法:
1. /*+ALL_ROWS*/
表明对语句块选择基于开销的优化方法,并获得最佳吞吐量,使资源消耗最小化.
例如:
SELECT /*+ALL+_ROWS*/ EMP_NO,EMP_NAM,DAT_IN from BSEMPMS WHERE EMP_NO='SCOTT';
2. /*+FIRST_ROWS*/
表 ......