摘要: CREATE TABLE [dbo].[PageLockWait]( id int identity primary key, [table_name] nvarchar NULL, [index_name] [sysname] NULL, [page_lock_count] [bigint] NO 阅读全文
posted @ 2021-03-04 17:09 haozhang2016 阅读(42) 评论(0) 推荐(0) 编辑
摘要: https://www.sqlskills.com/wp-content/uploads/2014/04/sql-server-performance-tuning-using-wait-statistics-whitepaper.pdf 阅读全文
posted @ 2021-03-04 15:37 haozhang2016 阅读(39) 评论(0) 推荐(0) 编辑
摘要: https://www.sqlskills.com/blogs/erin/capture-blocking-information-with-extended-events-and-the-blocked-process-report/ EXECUTE sp_configure 'show adva 阅读全文
posted @ 2021-03-04 15:36 haozhang2016 阅读(65) 评论(0) 推荐(0) 编辑
摘要: 先记录下,回头再补内容 legacy CE off 的时候,不同的兼容级别SQL优化器的表现不一样,而且在测试中确实执行时间差别很大 https://support.microsoft.com/en-us/topic/kb4342424-improvement-update-to-support-q 阅读全文
posted @ 2021-02-22 16:45 haozhang2016 阅读(1156) 评论(0) 推荐(0) 编辑
摘要: 之前改一些死锁问题时调整了事务的范围,改之后出现了几个性能问题,调查发现原先有个SP的循环是放在事务内部的,现在没有事务了,时间从30s变成了70s。 做个对比的小实验 create table testTran (id int, Name varchar(8)) go – 13 sec – Aut 阅读全文
posted @ 2021-02-18 14:07 haozhang2016 阅读(373) 评论(0) 推荐(0) 编辑
摘要: 安装完之后有如下错误信息 Overall summary: Final result: Failed: see details below Exit code (Decimal): -2068643839 Start time: 2021-02-17 18:23:23 End time: 2021- 阅读全文
posted @ 2021-02-18 13:22 haozhang2016 阅读(2270) 评论(0) 推荐(0) 编辑
摘要: CE简介 CE 是用来估计查询结果返回的记录数的,优化引擎会使用它来生成最优的执行计划。如果新版的CE导致你的查询执行速度更慢,通常是由于以下的原因: 查询语句在OLTP系统中执行的频率非常高, 且经常会并发执行。 Select语句中使用大量的聚合条件,并且在OLTP系统的日常工作时间执行。 CE的 阅读全文
posted @ 2018-12-01 22:45 haozhang2016 阅读(297) 评论(0) 推荐(0) 编辑
摘要: 摘自 使用select 会返回不需要的列,增加磁盘和网络开销 如果view的定义里用了select , 而底层的表有列名的变化的时候,view仍然会返回原来的列 解决的方法是使用sys.sp_refreshsqlmodule刷新定义 将view定义为SCHEMABINDING类型可以阻止select 阅读全文
posted @ 2018-09-14 21:18 haozhang2016 阅读(348) 评论(0) 推荐(0) 编辑
摘要: <! TOC "SET XACT_ABORT" "没有外部transaction 和 try...catch" "设置为OFF" "设置为ON" "只有try...catch" "有transaction和try...catch" "设置为OFF" "设置为ON" "默认设置" "参考链接" <! 阅读全文
posted @ 2018-09-14 15:54 haozhang2016 阅读(3366) 评论(0) 推荐(0) 编辑
摘要: 原文: http://rusanu.com/2009/06/11/exception handling and nested transactions/ 如下, @trancount 用来定义外部存储过程在调用[usp_my_procedure_name]时有没有开启transaction, 如果没 阅读全文
posted @ 2018-09-13 17:16 haozhang2016 阅读(172) 评论(0) 推荐(0) 编辑