摘要: logical operation:基于微软查询处理概念模型的逻辑操作。例如,联接运算符的physical operation属性表示联接算法(nested loops,merge ,hash)物理运算符 logical operation属性表示逻辑联接类型(Inner join,outer jo 阅读全文
posted @ 2017-08-02 16:00 有梦就能实现 阅读(388) 评论(0) 推荐(0) 编辑
摘要: 在园子看到一篇SQLServer关于查询计划的好文,激动啊,特转载。原文出自:http://www.cnblogs.com/fish-li/archive/2011/06/06/2073626.html 看懂SqlServer查询计划 对于SqlServer的优化来说,可能优化查询是很常见的事情。关 阅读全文
posted @ 2017-08-02 15:37 有梦就能实现 阅读(2828) 评论(0) 推荐(0) 编辑
摘要: 我们知道sql在底层的执行给我们上层人员开了一个窗口,那就是执行计划,有了执行计划之后,我们就清楚了那些烂sql是怎么执行的,这样 就可以方便的找到sql的缺陷和优化点。 一:执行计划生成过程 说到执行计划,首先要知道的是执行计划大概生成的过程,这样就可以做到就心中有数了,下面我画下简图: 1. 分 阅读全文
posted @ 2017-08-02 15:33 有梦就能实现 阅读(310) 评论(0) 推荐(0) 编辑
摘要: 刚开始用SQL Server的时候,我没有用显示执行计划来对查询进行分析。我曾经一直认为我递交的SQL查询都是最优的,而忽略了查询性能究竟如何,从而对“执行计划”重视不够。在我职业初期,我只要能获取数据就很开心,而不去考虑数据是如何返回的,“执行计划”对我的查询作了什么工作。我以为SQL Serve 阅读全文
posted @ 2017-08-02 15:32 有梦就能实现 阅读(388) 评论(0) 推荐(1) 编辑
摘要: 以前有 DBA 在身边的时候,从来不曾考虑过数据库性能的问题,但是,当一个应用程序从头到脚都由自己完成,而且数据库面对的是接近百万的数据,看着一个页面加载速度像乌龟一样,自己心里真是有种挫败感。代码的优化问题,这是属于程序员的职责范围之内,对于我来说,这一方面比较好探查些,因为都是自己熟悉的,用 E 阅读全文
posted @ 2017-08-02 15:26 有梦就能实现 阅读(245) 评论(0) 推荐(0) 编辑
摘要: 写在前面:这是第一篇T-SQL查询高级系列文章.但是T-SQL查询进阶系列还远远没有写完。这个主题放到高级我想是因为这个主题需要一些进阶的知识作为基础..如果文章中有错误的地方请不吝指正.本篇文章的内容需要索引的知识作为基础。 简介 在SQL SERVER中,非聚集索引其实可以看作是一个含有聚集索引 阅读全文
posted @ 2017-08-02 15:22 有梦就能实现 阅读(261) 评论(0) 推荐(0) 编辑
摘要: 在查看执行计划或调优过程中,执行计划里面有些现象总会让人有些疑惑不解: 1:为什么同一条SQL语句有时候会走索引查找,有时候SQL脚本又不走索引查找,反而走全表扫描? 2:同一条SQL语句,查询条件的取值不同,它的执行计划会一致吗? 3: 同一条SQL语句,其执行计划会变化,为什么 4: 在查询条件 阅读全文
posted @ 2017-08-02 15:18 有梦就能实现 阅读(321) 评论(0) 推荐(0) 编辑
摘要: 当SQL Server的性能变差时,最可能发生的是以下两件事: 首先,某些查询产生了系统资源上很大的压力。这些查询影响整个系统的性能,因为服务器无法足够快速地服务其他SQL查询。 另外,开销较大的查询阻塞了其他请求相同数据库资源的查询,进一步降低了这些查询的性能。优化开销较大的查询不仅改进它们本身的 阅读全文
posted @ 2017-08-02 15:09 有梦就能实现 阅读(309) 评论(0) 推荐(0) 编辑
摘要: 一、分析查询执行计划 执行计划的阅读顺序为,从右到左,从上到下。 由执行计划表示的查询执行的一些特征如下: 如果查询由多个查询的批组成,每个查询的执行计划按照执行的顺序显示。批中的每个执行计划将有一个相对的估算开销,整个批的总开销为100%。 执行计划中的每个图标代表一个操作符。它们每个都有一个相对 阅读全文
posted @ 2017-08-02 15:07 有梦就能实现 阅读(928) 评论(0) 推荐(0) 编辑
摘要: 要理解执行计划,怎么也得先理解,那各种各样的名词吧。鉴于自己还不是很了解。本文打算作为只写懂的,不懂的懂了才写。 在开头要先说明,第一次看执行计划要注意,SQL Server的执行计划是从右向左看的。 名词解析: 扫描:逐行遍历数据。 先建立一张表,并给大家看看大概是什么样子的。 CREATE TA 阅读全文
posted @ 2017-08-02 15:06 有梦就能实现 阅读(265) 评论(0) 推荐(0) 编辑
摘要: 推荐SQL Server精准时间查询方式 USE Test /*插入或修改3条时间为以下极端情况的记录 UPDATE dbo.UserInfo SET AddTime = '2016-8-1 00:00:00' WHERE id=2 UPDATE dbo.UserInfo SET AddTime = 阅读全文
posted @ 2017-08-02 15:01 有梦就能实现 阅读(1073) 评论(0) 推荐(0) 编辑
摘要: 三、连接查询部分 嵌套循环 /* UserInfo表数据少、Coupon表数据多 嵌套循环可以理解为就是两层For循环,外层For会循环其中的每一项,内层For进行匹配, 相应的外层For对应外部输入表,执行计划的图示排在上面,内层For对应内部出入表,执行计划的图示排在下面, 外部表每一行都要使用 阅读全文
posted @ 2017-08-02 14:59 有梦就能实现 阅读(244) 评论(0) 推荐(0) 编辑
摘要: 一、基本概念 1.数据的读取 页(page)是SQL SERVER可以读写的最小I/O单位。即使只需访问一行,也要把整个页加载到缓存之中,再从缓存中读取数据。物理读取是从磁盘上读取,逻辑读取是从缓存中读取。物理读取一页的开销要比逻辑读取一页的要大得多。 SET STATISTICS IO ON -- 阅读全文
posted @ 2017-08-02 14:58 有梦就能实现 阅读(287) 评论(0) 推荐(0) 编辑
摘要: Sql语句varchar或nvarchar字段条件前加N的话是对这个字段进行Unicode编码, 这样做的目的是避免在这种字段中存入俄文、韩文、日文的情况下有可能会出现乱码。 但这样做也会有性能问题,举例如下: SELECT * FROM UserInfo WHERE Name = N'taiyon 阅读全文
posted @ 2017-08-02 14:56 有梦就能实现 阅读(615) 评论(0) 推荐(0) 编辑
摘要: 一、数据查询部分 1、 看到执行计划有两种方式,对sql语句按Ctrl+L,或按Ctrl+M打开显示执行计划窗口每次执行sql都会显示出相应的执行计划 2、 执行计划的图表是从右向左看的 3、 SQL Server有几种方式查找数据记录 [Table Scan] 表扫描(最慢),对表记录逐行进行检查 阅读全文
posted @ 2017-08-02 14:54 有梦就能实现 阅读(672) 评论(0) 推荐(0) 编辑
摘要: http://www.studyofnet.com/news/list-8883.2-1-4.html 一、SQL Server 2008将数据导出到SQL脚本文件 1、打开SQL Server2008数据库的 Management Studio管理工具 2、进入数据库后,选择我们需要进行操作的数据 阅读全文
posted @ 2017-08-02 14:44 有梦就能实现 阅读(17957) 评论(0) 推荐(0) 编辑
摘要: 一个SQL SERVER数据库会处于很多种状态,例如 ONLINE 、RESTORING 、RECOVERING 、RECOVERY_PENDING 、SUSPECT、EMERGENCY 、OFFLINE等等。 一、下图主要反映了数据库的主要状态之间的切换 二、各种状态的简单介绍 1、ONLINE 阅读全文
posted @ 2017-08-02 14:40 有梦就能实现 阅读(2542) 评论(0) 推荐(0) 编辑
摘要: 1、定期进行数据备份(完备或差异备份)和日志备份。 2、使用压缩备份来减少磁盘空间占用和提高备份效率。 3、定期检查磁盘剩余空间和备份文件增长情况,以确保有足够空间进行下一次备份。 4、使用校验和(CHECKSUM)来检查数据完整性。 5、使用RESTORE VERIFYONLY来验证备份可用性。 阅读全文
posted @ 2017-08-02 14:39 有梦就能实现 阅读(509) 评论(0) 推荐(0) 编辑
摘要: 一、使用组合索引需要注意的地方 1、索引应该建在选择性高的字段上(键值唯一的记录数/总记录条数),选择性越高索引的效果越好、价值越大,唯一索引的选择性最高; 2、组合索引中字段的顺序,选择性越高的字段排在最前面;如果把低选择性的列放在最左端,可能会造成无法使用该索引的情况。 3、where条件中包含 阅读全文
posted @ 2017-08-02 14:30 有梦就能实现 阅读(1160) 评论(0) 推荐(0) 编辑
摘要: 复合索引最令人困惑的当属索引列的顺序,不仅依赖于使用该索引的查询,更需考虑排序和分组。 前段时候我发了个帖子:where条件顺序和复合索引字段顺序。感兴趣的朋友不妨参与讨论。 今天我提个自己的观点。 在应用开发阶段,【选择性】是我们首要考虑因素,请看简图: 当出现sql性能问题时,你可能需要注意以下 阅读全文
posted @ 2017-08-02 14:22 有梦就能实现 阅读(669) 评论(0) 推荐(0) 编辑