[SQL Server] 日志管理(待续)
--备份事务日志 (自上一次备份以来,至当前的已完成的事务的日志)
backup log MyDBName to disk='F:\dbbak\GamePoint\MyDBName_log_2010052709.bak';
--截断日志(截断掉当前的已完成的事务的日志), SQL Server 2005, 2008没有这个选项.
backup log MyDBName with no_Log;
--收缩日志(至1M,第一个参数为日志文件名,而不是物理文件名。如果日志还在使用,会延迟收缩)
dbcc shrinkfile (adventureworks_log, 1); --(查询文件名select name from sys.database_files)
go
一般来讲backup log后,会自动截断已完成(又称未活动)的事务日志,并且收缩该文件的大小。但如果你的数据库一直是在运行当中,且只有一个日志文件的时候,备份日志后,它是无法收缩该文件的大小(联机帮助上是说延迟收缩,实际上不知它延迟到什么时候),须backup log MyDBName with no_Log; 才能立即收缩文件大小。
因此,创建数据库时,建议分成2个日志文件,这样只要backup log后,至少会有一个日志文件会被截断并收缩到“已设定的日志文件最小值”。
-- 以下在sql server 2008下,快速收缩日志文件大小的方法。仍然建议数据库中多个日志文件,通过备份日志来自动截断和收缩日志。
use adventureworks;
go
-- truncate the log by changing the database recovery model to simple.
alter database adventureworks
set recovery simple;
go
-- shrink the truncated log file to 1 mb.
dbcc shrinkfile (adventureworks_log, 1); --(查询文件名select name from sys.database_files)
go
-- reset the database recovery model.
alter database adventureworks
set recovery full;
go
恢复事务日志, 待续...
相关文档:
利用hibernate的Query进行直接执行SQL语句
一、
String sql = "insert into SHOP_MALL_ACCOUNT_MAP_T (MALL_NO,ACCOUNT) values ('"
+ mallNo + "','" + userId + "')";
SQLQuery query = getSession().createSQLQuery(sql);
query.executeUpdate();
二、
String sql = "select to_char(SYN_DATE,' ......
一、分页写法小例:
SELECT FIRST 10 templateid,code,name from template ;
SELECT FIRST 10 SKIP 10 templateid,code,name from template ;
SELECT * from shop ROWS 1 TO 10; –firebird2.0支持这种写法
二、显示表名和表结构
SHOW TABLES;
SHOW TABLE tablename;
四、更新字段注释
......
怎样从数据库里随机读取
一条记录,
SELECT TOP 1 * from dbo.Customers ORDER BY NEWID()
这样,如果是随机10
条,100条。。。。
SELECT TOP 10 * from dbo.Customers ORDER BY NEWID()
很简单吧。
不过top后面数字越大,运行速度越慢。不推荐数据字太大。
以后代码在SQL2000 ......
to_date和to_char是oracle里里面的内置函数而不是标准的sql语法中的函数,用法举例:
1.to_char,返回结果可显示为各种形式
select to_char(sysdate,'yyyy/mm/dd') ,sysdate from dual;
结果: 2010/05/26 &nbs ......
最近在一个项目中遇到需要在数据层就拼接表中一列数据的问题。
例如,test表中有个字段t,t列中的4行数据为1,2,3,4 ,要拼接成1+2+3+4,琢磨了一阵,本来想用游标,但是效率。。后来找到一段SQL,可以很方便地拼接。
DECLARE @STR VARCHAR(8000) ----定义查询字符串
SELECT @STR=ISNULL(@STR+'+','')+t from (SELECT DIST ......