随笔分类 - SQL Server
摘要:查询速度慢的原因:1、没有索引或者没有用到索引(这是查询慢最常见的问题,是程序设计的缺陷)2、I/O吞吐量小,形成了瓶颈效应。 3、没有创建计算列导致查询不优化。4、内存不足。5、网络速度慢。6、查询出的数据量过大(可以采用多次查询,其他的方法降低数据量)。 7、锁或者死锁(这也是查询慢最常见的问题,是程序设计的缺陷)。 8、sp_lock,sp_who,活动的用户查看,原因是读写竞争资源。9、返回了不必要的行和列。 10、查询语句不好,没有优化。我们的解决方案1、把数据、日志、索引放到不同的I/O设备上,增加读取速度,以前可以将Tempdb应放在RAID0上,SQL2000不在支持。数据量(
阅读全文
摘要:1、应尽量避免在 where 子句中使用!=或<>操作符,否则将引擎放弃使用索引而进行全表扫描。2、对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。3、应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如: select id from t where num is null 可以在num上设置默认值0,确保表中num列没有null值,然后这样查询: select id from t where num=04、尽量避免在 where 子句中使用 or 来连接条件,否则将导致
阅读全文
摘要:B树 即二叉搜索树: 1.所有非叶子结点至多拥有两个儿子(Left和Right); 2.所有结点存储一个关键字; 3.非叶子结点的左指针指向小于其关键字的子树,右指针指向大于其关键字的子树; B树的搜索,从根结点开始,如果查询的关键字与结点的关键字相等,那么就命中;否则,如果查询关键字比结点关键字小,就进入左儿子;如果比结点关键字大,就进入右儿子;如果左儿子或右儿子的指针为空,则报告找不到相应的关键字; B-树是一种多路搜索树(并不是二叉的): 1.定义任意非叶子结点最多只有M个儿子;且M>2; 2.根结点的儿子数为[2, M]; 3.除根结点以外的非叶子结点的儿子数为[M/2, M];
阅读全文
摘要:众所周知,NTILE函数是SQL Server 2005的新特性之一,用于将有序分区中的行分发到指定数目的组中。各个组有编号,编号从一开始。那么在没有出现SQL Server 2005之前我们又是怎样做来达到这样的效果的呢?
阅读全文
摘要:SQL Server 2005的新特性排名函数:ROW_NUMBER,RANK,DENSE_RANK,NTILE,这些函数提供了一种简单高效的方式来执行排名计算。在之前的版本的中是如何来做排名计算的呢?文章的将会提供给大家几个解决方案,并且对其性能做了分析和测试。
阅读全文
摘要:数据访问基础类(基于Access数据库) Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ -->using System; using System.Collections; using System.Collections.Specialized...
阅读全文
摘要:没有排序的HashTable Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ -->using System; using System.Collections; using System.Collections.Specialized; us...
阅读全文
摘要:在做系统的时候,对数据的备份和数据恢复是经常要用到的,看看这篇文章吧!或许你会找到一些灵感!!
阅读全文