同意bluepower2008(蓝色力量) 兄说的
解决方案 »
- 请教个SQL写法问题,顺便再BS下CSDN的重复重复重复重复登录问题,登了再登,再登再再登,受不了拉
- 表中一个字段不能正常新增和触发器的有关问题
- 如何为这样的表建立索引?
- 存储过程入参为数组如何分离并循环?
- 合并记录的问题!大家给看看
- 存储过程中的去掉参数的问题
- sql server 2008 不能登录?
- 分组排序
- 所有系统单据都设定在表BillSet,如何简单快捷查出单据号?
- 有关sql2005导出数据到ACCESS的问题
- 问一个简单的问题,select * from table where date = '2001-1-1',但是数据库里的日期是包括小时,分秒,我这么样去掉这些?只查询出该
- 为什么从SQL Server6.5中得到的字段在页面显示为乱码?
如果早期数据在整个表中所占比例超过一定percent,则行锁或页锁也会自动升级为表锁。
遇到此类问题,你可以修改你的删除数据程序,是它变成一个cursor,这样可以避免出现表级锁。
小弟刚学SQL不久,很多都不是很理解。
锁怎么设置呢?
什么叫是否上了索引?我用min(日期),得到最早日期,这样算是用了索引吗?
cursor是个什么概念。下面是我的删除操作
declare @mdf_used real --数据文件已经使用空间
declare @maxspacerate real --最大百分比设置
declare @totalspace real --分区最大空间
declare @mindate datetime --最早一天
use test_bpcall --打开数据库
select @mdf_used=FILEPROPERTY('bpcall_Data', 'SpaceUsed')*8 --获得.mdf文件实际使用大小
select @maxspacerate=databasemaxrate from databasesize --得到最大百分比设置
select @totalspace=databasetotalsize from databasesize --得到分区最大空间
select @mindate=min(rqsj) from lsxxk --得到最早日期(天)
if(@mdf_used/1024)/@totalspace*100>@maxspacerate --判断当前使用率与最大使用率(纯分区实现)即一个分区只有数据库数据.mdf文件,日志放在其他区。
--@usespacerate>=maxspacerate --判断使用率,受其他文件影响的分区形式
begin
delete from lsxxk where rqsj<(@mindate+1) --删除最早一天数据
end
用事务的方法,如何对上面代码设置锁呢?
51 4 0 0 DB S GRANT
52 4 0 0 DB S GRANT
53 10 0 0 DB S GRANT
54 1 85575343 0 TAB IS GRANT
54 10 0 0 DB S GRANT
55 10 0 0 DB S GRANT
不过,我的数据库很大,每天要不能间断得收取信息,一天大概200M,总有一天会把硬盘(至少40G)撑满的。我做的是JOB,每天夜里2点触发。很恐怖的数据库啊...加了行锁,那么会影乡数据的同时插入吗?
我赶紧翻了翻SQL的工具书
可上只介绍了下些锁的概念,可没有计如何去设置锁,利用锁