07 2012 档案

摘要:这两天在研究SQL Server大数据量查询的优化问题,因为是项目还未上线,但可预见性的是数据量是几千万级别的所以的提早解决。 开始由于不太熟悉数据的深层应用,所以走了很多弯路,比如说把表物理分开,然后进行维护,查询。这样通过一些加工其实也是能满足一些要求,但是对我们程序开发来说就无形中增加了很多的工作量,所以只能再继续找新的方法。 最后,看了一些前辈关于分区表的帖子,才恍然大悟,原来SQL Server自身已经提供了这样强大的机制。 分区表,是从文件存储从物理上将表进行分割,分割成多张小表并用不同文件进行存储,但从逻辑上将却是一张大表,方便我们的开发 第一步:先得创建数据库文... 阅读全文
posted @ 2012-07-20 10:13 西山农夫 阅读(282) 评论(0) 推荐(0)
摘要:今天主管让测试大数据量查询的问题(数据条数上3000万),我解决的思路是将表拆分成多张表来减少查询时间那么涉及到多表之间的联合查询怎么查,怎么实现才能达到效率最大化。 思路:1、根据分表逻辑查询,这个比较简单用动态SQL语句就可以实现 我的分表逻辑是根据字段CardNumber末尾数字拆分的,将其拆分为0-9这十张表。1 DECLARE @CardNumber VARCHAR(50)2 DECLARE @Index AS VARCHAR(1)3 DECLARE @sql AS VARCHAR(1000)4 5 SET @Index = RIGHT(@CardNumber,1) ... 阅读全文
posted @ 2012-07-19 14:10 西山农夫 阅读(6641) 评论(1) 推荐(0)
摘要:今天碰到这个问题,在网上查了一下,有前辈同人说需要加“SET NOCOUNT ON”即可,但是我已经有了依然无法得到查询结果。最后检查了一下MSDN中帮助: SET NOCOUNT 使返回的结果中不包含有关受Transact-SQL语句影响的行数的信息 语法 SETNOCOUNT{ON|OFF} 注释 当SETNOCOUNT为ON时,不返回计数(表示受Transact-SQL语句影响的行数)。当SETNOCOUNT为OFF时,返回计数。所以要得到结果还必须 SETNOCOUNT OFF ; 阅读全文
posted @ 2012-07-19 11:13 西山农夫