随笔分类 -  sql server 优化

摘要:本文转自:http://www.cnblogs.com/wy123/p/5748933.html 仅供自己查阅,如有问题,联系删除; 【1】什么是统计信息 首先解释一个概念,统计信息是什么: 简单说就是对某些字段数据分布的一种描述,让SQL Server大概知道预期的数据大小,从而指导生成合理执行计 阅读全文
posted @ 2021-01-29 16:37 郭大侠1 阅读(385) 评论(0) 推荐(0) 编辑
摘要:【1】问题 【1.1】服务器本地查询很快,远程连接查询很慢 一同事跟我反馈他遇到了一个SQL性能问题,他说全表只有69条记录,客户端执行耗费了两分多钟,这不科学呀。要我分析一下原因并解决。我按照类似表结构,构造了一个案例,测试截图如下所示 【1.2】远程连接查询测试 这个表有13800KB(也就是1 阅读全文
posted @ 2020-09-01 17:15 郭大侠1 阅读(521) 评论(0) 推荐(0) 编辑
摘要:一、PAGELATCH_x和PAGEIOLATCH_x介绍 PAGELATCH_x和PAGEIOLATCH_x介绍 相关介绍、处理,参考:https://www.pianshen.com/article/3284541245/ PAGELATCH_ PAGELATCH_和 上面讲述的PAGEIOLA 阅读全文
posted @ 2020-04-25 15:14 郭大侠1 阅读(1949) 评论(0) 推荐(0) 编辑
摘要:零,ASYNC_NETWORK_IO 的概念 ASYNC_NETWORK_IO 等待类型是DBA经常会遇到的,虽然名称是异步、网络和IO,但是大多数情况下,此等待类型跟任何网络问题均无关系。 数据库系统大量出现ASYNC_NETWORK_IO等待的情况,大致有两类: 会话必须等待客户端应用程序处理从 阅读全文
posted @ 2020-04-25 14:59 郭大侠1 阅读(2085) 评论(0) 推荐(0) 编辑
摘要:CXPACKET 已经成为所有等待类型中最常见的一种了。我通常会在多CPU系统的前五位等待类型统计中看见。 【1】CXPACKET 的基本解决策略 联机丛书: 当尝试同步查询处理器交换迭代器时出现。如果针对该等待类型的争用成为问题时,可以考虑降低并行度。 【1.1】CXPACKET 解释 当为SQL 阅读全文
posted @ 2020-03-21 14:54 郭大侠1 阅读(2205) 评论(0) 推荐(1) 编辑
摘要:【0】故障信息 几乎每个insert / update 都会有writelog等待。 而且我查看了一下,并没有任何阻塞。 【1】WRITELOG的分析 当SQL Server会话等待WRITELOG等待类型时,它将等待将日志缓存的内容写入存储事务日志的磁盘。 为了更详细地说明该过程,假定会话启动一个 阅读全文
posted @ 2020-03-09 16:48 郭大侠1 阅读(1305) 评论(0) 推荐(0) 编辑
摘要:在master数据库中,SQL Server提供系统扩展的存储过程,其中有一些存储过程的命名以xp_开头,用于处理操作系统的文件。 一,判断文件是否存在 存储过程sys.xp_fileexist 用于判断文件是否存在,参数是文件(file)的路径或目录的路径: 该存储过程返回的结果集有一行数据,三个 阅读全文
posted @ 2019-12-09 21:14 郭大侠1 阅读(535) 评论(0) 推荐(0) 编辑
摘要:思路:必须要分批删除/更新,否则事务体量太大,删除时间太久,且为了保证不出问题应当有备份表 最佳实践如下:删除案例,更新相同这里就不特地写了 while 1=1 begin WAITFOR DELAY '00:00:01' DELETE TOP (3000) A output deleted.* i 阅读全文
posted @ 2019-10-17 10:45 郭大侠1 阅读(206) 评论(0) 推荐(1) 编辑
摘要:【1】tempdb介绍 tempdb全局存储内部对象,用户对象,临时表,临时对象,以及SQL Server操作创建的存储过程。每个数据库实例只有一个tempdb,所以可能存在性能以及磁盘空间瓶颈。 各种形式的可用空间及过度饿DDL/DML操作都会导致tempdb负载过重。这会导致运行在服务器上不相干 阅读全文
posted @ 2019-06-26 18:15 郭大侠1 阅读(1202) 评论(0) 推荐(2) 编辑
摘要:开启参数优化 exec sp_configure 'show advanced options', 1 reconfigure; exec sp_configure 'xp_cmdshell', 1 reconfigure; exec sp_configure 'Ad Hoc Distributed 阅读全文
posted @ 2019-06-21 12:35 郭大侠1 阅读(327) 评论(0) 推荐(0) 编辑
摘要:相关监控查阅参考另一篇博文:https://www.cnblogs.com/gered/p/11338221.html 理论知识参考:https://www.cnblogs.com/gered/p/9135379.html 【1】查看堆表 --查看堆表且行大于等于10W的 select * from 阅读全文
posted @ 2019-06-18 12:33 郭大侠1 阅读(779) 评论(0) 推荐(0) 编辑
摘要:【1】概念 把不同数据文件移动到不同的物理磁盘,无疑是一个提高IO的有效办法 在资源可以的情况下,尽量把 temp 、数据库的主数据文件(mdf)、数据库的从数据数据(ndf)、数据库的事务日志文件(ldf)存放在不同磁盘 如果碍于资源有限,尽可能的把数据文件存放在不同磁盘(即mdf与ndf不同盘, 阅读全文
posted @ 2019-06-17 18:48 郭大侠1 阅读(459) 评论(0) 推荐(0) 编辑
摘要:系列转自KK:https://www.cnblogs.com/double-K/ Expert 诊断优化系列 你的CPU高么? Expert 诊断优化系列 内存不够用么? Expert 诊断优化系列 冤枉磁盘了 Expert 诊断优化系列 语句调优三板斧 Expert 诊断优化系列 透过等待看系统 阅读全文
posted @ 2019-06-13 21:16 郭大侠1 阅读(295) 评论(0) 推荐(0) 编辑
摘要:性能调优常规手段 性能调优就是用更少的资源提供更好的服务,成本利益最大化。性能调优的手段并不新鲜,性能调优常规手段有: (1) 空间换时间,内存、缓存就是典型的空间换时间的例子。利用内存缓存从磁盘上取出的数据,CPU请求数据直接从内存中获取,从而获取比从磁盘读取数据更高的效率。 (2) 时间换空间, 阅读全文
posted @ 2019-04-23 15:59 郭大侠1 阅读(6484) 评论(0) 推荐(1) 编辑
摘要:深入sql server优化,MSSQL优化,T-SQL优化,查询优化 故事开篇:你和你的团队经过不懈努力,终于使网站成功上线,刚开始时,注册用户较少,网站性能表现不错,但随着注册用户的增多,访问速度开始变慢,一些用户开始发来邮件表示抗议,事情变得越来越糟,为了留住用户,你开始着手调查访问变慢的原因 阅读全文
posted @ 2019-04-11 11:48 郭大侠1 阅读(13892) 评论(5) 推荐(12) 编辑
摘要:转自:https://www.cnblogs.com/yunfeifei/p/3850440.html 数据库SQL优化大总结之 百万级数据库优化方案 网上关于SQL优化的教程很多,但是比较杂乱。近日有空整理了一下,写出来跟大家分享一下,其中有错误和不足的地方,还请大家纠正补充。 这篇文章我花费了大 阅读全文
posted @ 2019-04-06 22:00 郭大侠1 阅读(280) 评论(0) 推荐(0) 编辑
摘要:【1】常见等待 等待分类与解决基本流程: CXPACKET : 当尝试同步查询处理器交换迭代器时出现。如果针对该等待类型的争用成为问题时,可以考虑降低并行度。 IO_COMPLETION : 在等待 I/O 操作完成时出现。通常,该等待类型表示非数据页 I/O。 PAGEIOLATCH_ : 在任务 阅读全文
posted @ 2018-12-06 15:06 郭大侠1 阅读(1709) 评论(0) 推荐(1) 编辑
摘要:数据库参数调优--自动更新统计信息 原文: https://blog.csdn.net/z10843087/article/details/78356975 关于2371 trace:http://www.sqlservergeeks.com/sql-server-trace-flag-2371/ 阅读全文
posted @ 2018-10-12 17:14 郭大侠1 阅读(589) 评论(0) 推荐(0) 编辑
摘要:测试数据:2亿行,被筛选出的数据,3KW多行。 众所周知 like %str%无法走索引,但是我们如果实在是有这种需求要达到like '%str%'的筛选目的,怎么优化好一些呢? 以下是我的一些思考: (1)全文索引:原理是利用倒排索引,构建由谓词、短语、关键词等组成记录索引。但其实如果词用的不好会 阅读全文
posted @ 2018-09-05 12:33 郭大侠1 阅读(1118) 评论(0) 推荐(0) 编辑
摘要:【1】查询缓存找出最耗资源的SQL 从计划高速缓存中清除查询计划 DBCC FREEPROCCACHE 清除缓存中的过程 DBCC DROPCLEANBUFFERS清除内存中的数据 SELECT DB_ID('你的数据库名') (1.1)CPU消耗 前10 SELECT TOP 10 total_w 阅读全文
posted @ 2018-08-27 10:53 郭大侠1 阅读(507) 评论(0) 推荐(1) 编辑