随笔分类 -  Sql Server

摘要:分享一个SQLSERVER脚本(计算数据库中各个表的数据量和每行记录所占用空间) 很多时候我们都需要计算数据库中各个表的数据量和每行记录所占用空间 这里共享一个脚本 注意:使用之前要计算哪个数据库的记录,请先USE一下要统计表记录数的那个数据库!! 工作中遇到的问题 可以说我在实际的工作中 ,在10 阅读全文
posted @ 2016-03-24 14:45 esoftor 阅读(372) 评论(0) 推荐(0)
摘要:每个人都很忙,但是花10分钟复习下,总结下基础东西还是很有益处的。 背景: 总结一句,使用简便,还能递归,是的SQL更简洁,相对比一大堆的关联语句,而且关联一大堆还不一定实现特定功能。而且共用部分可以提取出来,提高复用性,这是有代码洁癖的人没法接受的,所以总会重构代码,。。扯偏了 创建: (图片来自 阅读全文
posted @ 2016-03-24 13:46 esoftor 阅读(757) 评论(0) 推荐(0)
摘要:不开心呀,早知道不跳了,一跳跳坑里来了。 使用方式: DECLARE @ConsigneeAddressId INT; SET @ConsigneeAddressId = 1; SELECT * FROM ConsigneeAddress A OUTER APPLY StrSplit(A.Consi 阅读全文
posted @ 2016-01-13 11:20 esoftor 阅读(1489) 评论(0) 推荐(0)
摘要:如有更好的方式,希望交流。感谢热心人,cc谢过EXECsys.sp_MSforeachtable@precommand=N'createtable##( 表名sysname, 记录数int, 保留空间Nvarchar(10), 使用空间varchar(10), 索引使用空间varchar(10), ... 阅读全文
posted @ 2015-12-30 16:10 esoftor 阅读(783) 评论(0) 推荐(0)
摘要:说明:(1)、临时表其实是放在数据库tempdb里的一个用户表;(2)、TempTableName必须带“#”,“#"可以是一个或者两个,以#(局部)或##(全局)开头的表,这种表在会话期间存在,会话结束则自动删除;(3)、如果创建时不以#或##开头,而用tempdb.TempTable来命名它,则... 阅读全文
posted @ 2015-07-01 10:58 esoftor 阅读(221) 评论(0) 推荐(0)
摘要:创建索引的实例说明:语法:CREATE [索引类型] INDEX 索引名称ON 表名(列名)WITH FILLFACTOR = 填充因子值0~100GOUSE 库名GOIF EXISTS (SELECT * FROM SYSINDEXES WHERE NAME='IX_TEST_TNAME')--检测是否已经存在IX_TEST_TNAME索引DROP INDEX TEST.IX_TEST_TNAME--如果存在则删除--创建索引CREATE NONCLUSTERED INDEX IX_TEST_TNAME --创建一个非聚集索引ON TEST(TNAME)--为TEST表的TN 阅读全文
posted @ 2013-09-02 13:30 esoftor 阅读(4773) 评论(0) 推荐(0)
摘要:查询速度慢的原因很多,常见如下几种: 1、没有索引或者没有用到索引(这是查询慢最常见的问题,是程序设计的缺陷) 2、I/O吞吐量小,形成了瓶颈效应。 3、没有创建计算列导致查询不优化。 4、内存不足 5、网络速度慢 6、查询出的数据量过大(可以采用多次查询,其他的方法降低数据量) 7、锁或者死锁(这也是查询慢最常见的问题,是程序设计的缺陷) 8、sp_lock,sp_who,活动的用户查看,原因是读写竞争资源。 9、返回了不必要的行和列 10、查询语句不好,没有优化 可以通过如下方法来优化查询 : 1、把数据、日志、索引放到不同的I/O设备上,增加读取速度,以前可以将... 阅读全文
posted @ 2013-09-02 13:21 esoftor 阅读(1564) 评论(0) 推荐(0)