
1清空日志
dump transaction 库名 with no_log
2截断事务日志:
backup log 数据库名 with no_log
3收缩数据库文件(如果不压缩,数据库的文件不会减小
企业管理器--右键你要压缩的数据库--所有任务--收缩数据库--收缩文件
--选择日志文件--在收缩方式里选择收缩至xxm,这里会给出一个允许收缩到的最小m数,直接输入这个数,确定就可以了
--选择数据文件--在收缩方式里选择收缩至xxm,这里会给出一个允许收缩到的最小m数,直接输入这个数,确定就可以了
也可以用sql语句来完成
--收缩数据库
dbcc shrinkdatabase(客户资料)
--收缩指定数据文件,1是文件号,可以通过这个语句查询到:select from sysfiles
dbcc shrinkfile(1)
4为了最大化的缩小日志文件(如果是sql 70,这步只能在查询分析器中进行)
a分离数据库:
企业管理器--服务器--数据库--右键--分离数据库
b在我的电脑中删除log文件
c附加数据库:
企业管理器--服务器--数据库--右键--附加数据库
此法将生成新的log,大小只有500多k
或用代码:
下面的示例分离 pubs,然后将 pubs 中的一个文件附加到当前服务器。
a分离
e x e c sp_detach_db @dbname = 'pubs'
b删除日志文件
c再附加
e x e c sp_attach_single_file_db @dbname = 'pubs',
@physname = 'c:\program files\microsoft sql server\mssql\data\pubsmdf'
5为了以后能自动收缩,做如下设置:
企业管理器--服务器--右键数据库--属性--选项--选择"自动收缩"
--sql语句设置方式:
e x e c sp_dboption '数据库名', 'autoshrink', 'true'
6如果想以后不让它日志增长得太大
企业管理器--服务器--右键数据库--属性--事务日志
--将文件增长限制为xm(x是你允许的最大数据文件大小)
--sql语句的设置方式:
alter database 数据库名 modify file(name=逻辑文件名,maxsize=20)
只有表或视图的所有者才能为表创建索引。表或视图的所有者可以随时创建索引,无论表中是否有数据。可以通过指定限定的数据库名称,为另一个数据库中的表或视图创建索引。语法
CREATE [ UNIQUE ] [ CLUSTERED | NONCLUSTERED ] INDEX index_name
ON { table | view } ( column [ ASC | DESC ] [ ,n ] )
[ WITH < index_option > [ ,n] ]
[ ON filegroup ]< index_option > ::=
{ PAD_INDEX |
FILLFACTOR = fillfactor |
IGNORE_DUP_KEY |
DROP_EXISTING |
STATISTICS_NORECOMPUTE |
SORT_IN_TEMPDB
}参数
你写上去的编译的时候有点小错误,正确的应该是这样写的
Create table [dbo][adminitable](
[adminpassword] [varchar](50) null,
[adminname] [varchar](20) null,
constraint [pk_adminitable] primary key clustered
(
[adminname] asc
)
with (pad_index=off,statistics_norecompute=off,ignore_dup_key=off,allow_row_locks=on,allow_page_locks=on)
on [primary])
on [primary]
constraint 是子句限制
on [primary]是指的该表位于primary文件组,也就是主文件组,一个数据库可以分为n个文件组
with 后面接的是索引描述
pad_index是指定非页级索引页的数据充满度
SQL 语句里面的 with
是使用在 CTE 上面的
CTE(Common Table Expression) ,即公用表表达式,可以认为是在单个 SELECT、INSERT、UPDATE、DELETE 或 CREATE ⅥEW 语句的执行范围内定义的临时结果集。CTE 与派生表类似,具体表现在不存储为对象,并且只在查询期间有效。与派生表的不同之处在于,CTE 可自引用,还可在同一查询中引用多次。
withas是用来定义sql代码片段的语句,一般是在sql嵌套查询比较多的时候应用,可以增加sql语句的可读性。下面我以sql server来具体演示一下withas怎么用:
1、准备要 *** 作的数据,假设要查询下面年龄大于40岁的数据,如下图所示
2、用withas将查询结果定义成一个表cr,cr不是硬性要求,你可以自己定义成喜欢的名字,如下图所示
3、然后就可以直接从cr表中查询数据,如下图所示
4,最后我们可以看到需要的数据从cr中被查询出来了,如下图所示
with 开头的, 看上去应该是 CTE 语句吧
也就是 Common Table Expression
CTE(Common Table Expression) ,即公用表表达式,可以认为是在单个 SELECT、INSERT、UPDATE、DELETE 或 CREATE ⅥEW 语句的执行范围内定义的临时结果集。CTE 与派生表类似,具体表现在不存储为对象,并且只在查询期间有效。与派生表的不同之处在于,CTE 可自引用,还可在同一查询中引用多次。
不知道你想了解的是不是这个了。
以上就是关于数据库事物日志已满这个问题怎么解决全部的内容,包括:数据库事物日志已满这个问题怎么解决、数据库里建立索引中with fillfactor = 30 fillfactor 是什么意思、SQL创建表里边的with是什么意思等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)