SQL中如何查询各个数据表的大小<轉>
摘要:declare @id int declare @type character(2) declare @pages int declare @dbname sysname declare @dbsize dec(15,0) declare @bytesperpage dec(15,0) declare @pagesperMB dec(15,0) create table #spt_space ( [objid] int null, [rows] int null, [reserved] dec(15) null, [data] dec(15) nul...
阅读全文
获得SQL语句或存储过程的返回值方法
摘要:1、使用Sp_executeSql执行SQL,用输出参数获得其变量[代码]其中@Sql字符串,必须为 ntext/nchar/nvarchar三种类型中的一种,否则会出错(以下摘自CSDN)2、在存储过程中使用RaisError,传回错误讯息 IF @@Error<>0 RaisError '更新数据时错误',16,1 return 如果执行间段错误,傳回使用者自訂的錯誤訊息,並...
阅读全文
数据库查询效率分析
摘要:1 合理的索引设计: 例:表record有620000行,试看在不同的索引下,下面几个SQL的运行情况: 语句A SELECT count(*) FROM record WHERE datebetween'19991201' and'19991214‘ and amount 2000 语句B SELECT count(*) FROM record WHERE date '19990901' and place IN ('BJ','SH') 语句C SELECT date,sum(amount) FROM record group by date 1 在date上建有一个非聚集索引 A:(2
阅读全文
数据库索引概念与优化
摘要:索引就是加快检索表中数据的方法。数据库的索引类似于书籍的索引。在书籍中,索引允许用户不必翻阅完整个书就能迅速地找到所需要的信息。在数据库中,索引也允许数据库程序迅速地找到表中的数据,而不必扫描整个数据库。
1.聚簇索引和非聚簇索引(聚集索引,非聚集索引)
聚集索引:该索引中键值的逻辑顺序决定了表中数据行的物理顺序。如果对从表中检索的数据进行排序时,
经常要用到某一 列,则可以将该表在该列上聚集(物理排序),避免每次查询该列时都进行排序,从而节省成本
CREATE CLUSTERED INDEX mycolumn_cindex ON mytable(mycolumn) WITH
ALLOW_DUP_ROW(允许有重复记录的聚簇索引)
非聚簇索引:物理存储不按照索引排序
CREATE UNCLUSTERED INDEX mycolumn_cindex ON mytable(mycolumn)
阅读全文
SQL Server实用经典例句之二
摘要:1.在sqlserver创建用户临时表和系统临时表的方法,及两者的区别?用户临时表:create table #xx(ID int, IDValues int)系统临时表:create table ##xx(ID int, IDValues int)区别:用户临时表只对创建这个表的用户的Session可见,对其他进程是不可见的.当创建它的进程消失时这个临时表就自动删除.系统临时表对整个SQL Se...
阅读全文
SQL锁的应用与描述之二
摘要:如何避免死锁
1 使用事务时,尽量缩短事务的逻辑处理过程,及早提交或回滚事务;
3 设置死锁超时参数为合理范围,如:3分钟-10分种;超过时间,自动放弃本次操作,避免进程悬挂;
3 所有的SP都要有错误处理(通过@@error)
4 一般不要修改SQL SERVER事务的默认级别。不推荐强行加锁
阅读全文
SQL锁的应用与描述之一
摘要:一. 为什么要引入锁
SQL中锁的应用不是很多,但多个用户同时对数据库的并发操作时,会带来以下数据不一致的问题:
丢失更新
A,B两个用户读同一数据并进行修改,其中一个用户的修改结果破坏了另一个修改的结果,比如订票系统;
脏读
A用户修改了数据,随后B用户又读出该数据,但A用户因为某些原因取消了对数据的修改,数据恢复原值,此时B得到的数据就与数据库内的数据产生了不一致
阅读全文
你的DNN站点慢了么?
摘要:当你的dnn站点在线运行了一段时间之后,你会发现速度在不断下降,加载页面很慢很慢,这是为何呢?
仔细寻找,你可能会发现数 据库一直在膨胀,我想这就是站点变慢的罪魁祸首,在dnn中,如果你开启网站记录这一功能或某一任务调度,这些都会产生一堆的记录信息,久而久之就让你站 点的数据库不断的膨胀. 你如果有条件或权限的话,你不妨到主机管理/SQL服务或在SQL Manage里执行以下语句看看你的数据库大小都消耗在哪了:
sp_spaceused eventlog/sitelog/schedulehistory
一、如果日志文件太大,可以压缩日志文件,参考清除SQL SERVER日志
二、上面的方法的没法清除schedulehistory这一表里的数据,执行下列语句清除:
阅读全文
SQL SERVER磁盘空间的使用情况,日志清理
摘要:一、查询磁盘空间的使用情况及各数据库数据文件及日志文件的大小及使用利用率:1、查询各个磁盘分区的剩余空间:Exec master.dbo.xp_fixeddrives 2、查询数据库的数据文件及日志文件的相关信息(包括文件组、当前文件大小、文件最大值、文件增长设置、文件逻辑名、文件路径等)select * from [数据库名].[dbo].[sysfiles]转换文件大小单位为MB:select...
阅读全文
SQL游标的执行效率,静态游标的高效率执行
摘要:简单静态游标示例:
DECLARE product_cursor CURSOR STATIC FOR
SELECT cName FROM Product
OPEN product_cursor
FETCH NEXT FROM product_cursor INTO @product
WHILE @@FETCH_STATUS = 0
BEGIN
SELECT @message = ' ' + @product
PRINT @message
FETCH NEXT FROM product_cursor INTO @product
END
CLOSE product_cursor
DEALLOCATE product_cursor
阅读全文
Alter Table对表结构修改时,常见的错误及解决方法
摘要:我参照SQL Server帮助文档中Alter Table命令,对表结构进行修改时,出错了一些错误,下面特针对此常见错误做出详细说明,文章中有引用作者[Leo]的方法例题
阅读全文