![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
SQL性能优化
tianlianchao1982
BI中的Intelligence不是专家系统中的智能概念,也不是机器智能的那种富有人脑能力的学习功能。这里的智能是指商业智能,就是说B和I不能分开谈的。商业智能,是为人(决策者)更方便,更快捷,更准确地提供决策信息,指导商业运作。那么ERP系统就不能提供这些信息吗?当然能,因为BI的数据来源就是ERP这样的业务系统,信息都在这些系统之中。但是普通业务系统能方便,快捷地提供数据吗?答案是否定的,为什么?因为这些业务系统的数据组织形式不是从用户看数据的角度设计的,而是从数据收集,数据操作的角度来设计
展开
-
在SQL Server数据库中索需遵守六大铁律
索引是以表列为基础的数据库对象。索引中保存着表中排序的索引列,并且纪录了索引列在数据库表中的物理存储位置,实现了表中数据的逻辑排序。通过索引,可以加快数据的查询速度和减少系统的响应时间;可以使表和表之间的连接速度加快。 索引是以表列为基础的数据库对象。索引中保存着表中排序的索引列,并且纪录了索引列在数据库表中的物理存储位置,实现了表中数据的逻辑排序。通过索引,可以加快数据的查询速度和减转载 2010-05-04 14:01:00 · 551 阅读 · 0 评论 -
SQL SERVER性能分析--死锁检测数据库阻塞语句
作中数据库经常出错死锁,并且还要要求解决当前的死锁,问题多多; 参照CSDN,中国风(Roy)一篇死锁文章并改进了下; /*********************************************************************************************************************** 整理人:黑木崖上的蜗牛(l转载 2010-05-06 09:40:00 · 560 阅读 · 0 评论 -
高效SQL查询之Graphical Execution Plans
Blog Address: http://www.simple-talk.com/sql/performance/graphical-execution-plans-for-simple-sql-queries/ The aim of this article is to enable you to interpret basic graphical execution plans, in翻译 2010-05-06 09:41:00 · 1081 阅读 · 0 评论 -
高效SQL查询之索引(II)
上回我们说到评估一条语句执行效率主要看逻辑 IO (啥是逻辑 IO ,啥是物理 IO 见联机文档),这次我们继续。 我们先说说,返回多行结果时,为什么 SQLServer 有时会选择 index seek ,有时会选择 index scan 。 以 nonclustered index 为例说明。 像所有的索引 B 树一样,非聚集索引树也包括完全由索引数据组成的根节点和中间级节点;但是转载 2010-05-06 09:44:00 · 411 阅读 · 0 评论 -
sql server性能分析--DMV之(sys.dm_exec_query_stats )
在做查询优化时,有时总找不到相应的要优化的东东;在做查询分析时看了半天代码不,写得太规范,又没注释; 只能想别的方法解决这一问题; 先清除缓存: dbcc freeProcCache 找出哪些SQL跟数据库还有表对象 SELECT DB_ID(DB.dbid) 数据库名 , OBJECT_ID(db.objectid) 对象 , QS.creat转载 2010-05-06 09:42:00 · 2067 阅读 · 0 评论 -
高效SQL查询之索引(V)
先站在应用程序的角度说说它们的不同。 1、 直接拼 SQL 就像大家了解的那样,直接拼 SQL 带来了 SQL 注入攻击,带来了拼时些许的性能损失,但是拼不用添加 SqlParameter ,会少写很多代码——很多人喜欢直接拼,也许就因为这点。这种做法会把你拼好的 SQL 原样直接发送到 DB 服务器去执行。(注意类似 ”exec yourproc ‘param1’, 12” 的语句不在此转载 2010-05-06 09:43:00 · 559 阅读 · 0 评论 -
高效SQL查询之索引(I)
大型系统的生产环境,一般情况下,我们评价一条查询是否有效率,更多的是关注逻辑 IO( 至于为什么,回头补一篇 ) 。我们常说,“要建彪悍的索引”、“要写高效的 SQL ”,其实最终目的就是在相同结果集情况下,尽可能减少逻辑 IO 。 1.1 where 条件的列上都得有统计信息。 没统计信息 SQLServer 就无法估算不同查询计划开销优劣,而只能采用最稳妥的 Scan (不管是转载 2010-05-06 09:45:00 · 426 阅读 · 0 评论 -
sql 创建全文索引
一个完整的SQL SERVER数据库全文索引的示例。(以pubs数据库为例)首先,介绍利用系统存储过程创建全文索引的具体步骤:1) 启动数据库的全文处理功能 (sp_fulltext_database)2) 建立全文目录 (sp_fulltext_catalog)3) 在全文目录中注册需要全文索引的表 (sp_fulltext_tabl转载 2010-05-10 14:18:00 · 952 阅读 · 0 评论 -
SQL Server表分区操作详解
【IT专家网独家】你是否在千方百计优化SQL Server 数据库的性能?如果你的数据库中含有大量的表格,把这些表格分区放入独立的文件组可能会让你受益匪浅。SQL Server 2005引入的表分区技术,让用户能够把数据分散存放到不同的物理磁盘中,提高这些磁盘的并行处理性能以优化查询性能。 SQL Server数据库表分区操作过程由三个步骤组成: 1. 创建分区函数 2.转载 2010-05-10 14:20:00 · 377 阅读 · 0 评论 -
何时使用聚集索引或非聚集索引
动作描述 使用聚集索引 使用非聚集索引 列经常被分组排序 应 应 返回某范围内的数据 应 不应 一个或极少不同值 不应 不应 小数目的不同值 应 不应 大数目的不同值 不应 应 频繁更新的列 不应 应 外键列 应 应 主键列 应 应 频繁修改索引列 不应 应转载 2010-05-10 14:23:00 · 399 阅读 · 0 评论 -
Microsoft SQL Server 2000 全文索引和性能问题
关于全文检索,想必大家都不会陌生,帮助文档的搜索功能以及CSDN论坛的搜索功能,在你输入需要查找的关键字之后,程序将返回包含这些关键字的一个线索列表。全文检索最先引入到Windows系统中是用在IIS上面,之后Windows 操作系统提供了搜索服务组件(Microsoft SearchService)。到了SQL Server7.0,数据库开始集成全文检索,这是通过Windows 操作系统的搜索服转载 2010-05-10 14:15:00 · 570 阅读 · 0 评论 -
SQL Server索引原则
如何让你的SQL运行得更快 ---- 人们在使用SQL时往往会陷入一个误区,即太关注于所得的结果是否正确,而忽略了不同的实现方法之间可能存在的性能差异,这种性能差异在大型的或是复杂的数据库环境中(如联机事务处理OLTP或决策支持系统DSS)中表现得尤为明显。笔者在工作实践中发现,不良的SQL往往来自于不恰当的索引设计、不充份的连接条件和不可优化的where子句。在对它们进行适当的优化后,其运行速度转载 2010-05-06 09:37:00 · 376 阅读 · 0 评论 -
SQL SERVER性能优化--Tempdb相关问题
TEMPDB不支持自动压缩,且它的数据库和文件压缩能力是有限制的; 如不得不压缩TEMPDB的大小,建议使用离线功能,如下操作: 1.停止SQL SERVER服务; 2.找到sqlservr.exe在磁盘中的位置; 3.使用sqlservr.exe输入命令sqlservr -c -f,这样启动SQL SERVER时,TEMPDB的大小能够保持最小; 4.使用TSQL命令:ALT转载 2010-05-06 09:36:00 · 694 阅读 · 0 评论 -
Sql2005 全文索引
理論部份 前言 在数据库中快速搜索数据,使用索引可以提高搜索速度,然而索引一般是建立在数字型或长度比较短的文本型字段上的,比如说编号、姓名等字段,如果建立在长度比较长的文本型字段上,更新索引将会花销很多的时间。如在文章内容字段里用like语句搜索一个关键字,当数据表里的内容很多时,这个时间可能会让人难以忍受。在SQL Server中提供了一种名为全文索引的技术,可以大大提高从长转载 2010-05-06 09:30:00 · 1235 阅读 · 0 评论 -
索引视图
SQL Server 2008 联机丛书(2009 年 7 月)设计索引视图 视图也称为虚拟表,因为视图所返回的结果集的一般格式与表相同,都是由列和行组成,而且在 SQL 语句中引用视图的方式也与引用表的方式相同。标准视图的结果集不是永久地存储在数据库中。每次查询引用标准视图时,SQL Server 都会在内部将视图的定义替换为该查询,直到修改后的查询仅引用基表。然后,它将原创 2010-05-04 14:22:00 · 523 阅读 · 0 评论 -
SQL Server 2000索引结构及使用方法
一、深入浅出理解索引结构 实际上,您可以把索引理解为一种特殊的目录。微软的SQL SERVER提供了两种索引:聚集索引(clustered index,也称聚类索引、簇集索引)和非聚集索引(nonclustered index,也称非聚类索引、非簇集索引)。下面,我们举例来说明一下聚集索引和非聚集索引的区别: 其实,我们的汉语字典的正文本身就是一个聚集索引。比如,我们要查"安"字,转载 2010-05-04 13:56:00 · 495 阅读 · 0 评论 -
优化数据库前需考虑的十个问题
在优化你的数据库时,你可能没有用到这些细节的优点。以下是10个关于你的数据库性能的问题,需要你问问自己…… 1. 假设你的数据库不需要存储特殊字符的能力,尤其是Unicode标准中规定的那些字符,你有没有在系统中把nchar类型替换成char之类的各种适用的字段类型? 2. 你是不是在用smalldatetime类型,而不是datetime?如果你不清楚这两种类型有什么区别,这转载 2010-05-04 14:02:00 · 458 阅读 · 0 评论 -
全文检索拾零
命令方式创建全文检索 SQL2005系统数据库中为我们提供了一整套跟全文检索相关的存储过程,学会调用事半功倍。 一、全文索引的启用和禁用 1、 数据库启用全文检索 Exec sp_fulltext_database enable 2、 数据库关闭全文检索 Exec sp_fulltext_database disable二、建立全转载 2010-05-06 09:32:00 · 509 阅读 · 0 评论 -
sql server 2008全文索引干扰词示例
处理网站查询包含”之”字出现”全文搜索条件中包含干扰词”现象的总结:author:perfectactionSql server 2008全文索引的干扰词表默认在Resource库系统表内,无法更改,但sql2008提供了自定义干扰词表的功能,可绑定到某个全文索引上。相关操作如下:--sql server 2008 全文索引建立及创建全文非索引字表(干扰词表)--以dbtest的user_info转载 2010-05-06 09:33:00 · 1076 阅读 · 0 评论 -
SQL SERVER性能优化--分区表
本文演示了 SQL Server 2008 分区表实例; 1. 创建测试数据库 ; 2. 创建分区函数; 3. 创建分区架构; 4. 创建分区表; 5. 创建分区索引 ; 6. 分区切换 ; 7. 查询哪些表使用了分区表; -- 作成者 leno -- 日期: 2009-06-06 23:50:01.700 -- 创建测试数据库 US转载 2010-05-06 09:39:00 · 1151 阅读 · 0 评论 -
高效SQL查询之索引覆盖(index coverage)
今天做SQL 优化,查找执行计划时,执行计划,发现此执行计划与以往的计划有所区别;找录互联网,终于找一篇有关研究比较深入的文章; 原执行计划使用的是索引扫描,突然一下会使用索引覆盖技术,效率大增; SELECT * 的真相:索引覆盖(index coverage) SELECT *的效率很糟糕吗?当然,所有人都知道这一点,但是为什么呢? 是因为返回了太多的数据? 这是一个普遍的转载 2010-05-06 09:43:00 · 508 阅读 · 0 评论 -
高效SQL查询之索引(VI)
我们先看 NestedLoop 和 MergeJoin 的算法(以下为引用,见 RicCC 的《 通往性能优化的天堂 - 地狱 JOIN 方法说明 》 ):==================================NestedLoop: foreach rowA in tableA where tableA.col2=? { search rowsB from table转载 2010-05-06 09:44:00 · 462 阅读 · 0 评论 -
高效SQL查询之索引(III)
先说说这些误区。所谓“误区”,有一些是新手很容易犯的错误或者很容易忽略的问题,另外一些,则是像“耗子吃了盐会变成蝙蝠”一样,让我们从小就认为是正确的事情。如下: 1、 表上不管用得着用不着,都加个聚集索引。 我们知道,表以两种方式组织物理存储:有聚集索引的“聚集表”;没有聚集索引的“堆”。在聚集表中,数据行按照聚集索引的顺序存储(这也是为啥一张表最多只能有一个聚集索引的原因);堆中,数转载 2010-05-06 09:45:00 · 347 阅读 · 0 评论 -
实现SQL Server 2008数据压缩
为什么需要数据压缩 首先可能需要讨论的问题就是为什么在存储成本不断降低的今天,微软还要煞费苦心地在SQL Server中实现并且不断改进数据压缩技术呢? 尽管存储成本已经不再是传统意义上的首要考虑因素,但是这并不代表数据库尺寸不是一个问题,因为数据库尺寸除了会影响到存储成本之外,还极大地关联到管理成本和性能问题。 首先我们来讨论为什么会有管理成本的问题?因为数据库需要备份,数据库转载 2010-05-06 11:01:00 · 478 阅读 · 0 评论 -
SQL Server 速度之谜
等待时间分析可以通过控制应用程序对询问的响应时间来提高SQL的性能。你是否曾因为SQL服务器减慢了应用程序的运行速度而自己却为不知该如何解决这一问题感到苦恼呢? 【美国1105集团供IT专家网专稿】SQL服务器的性能管理通常是反应式的,它侧重的是服务器的运行状态。数据库管理员会对问题作出响应而不是将避免问题的产生摆在首位。可视性也很大程度上仅限于观测数据库服务器而不是了解SQL服务器怎转载 2010-05-11 10:10:00 · 706 阅读 · 0 评论