• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
fly_zj
博客园    首页    新随笔    联系   管理    订阅  订阅
2014年12月29日
缓解 SQL Server has encountered 727 occurrence(s) of I/O requests taking longer than 15 seconds
摘要: sql server 会记录IO等待时间超过15 seconds的请求,这时application会有 time out 现象,dba需要判断是workload,concurrecy 所致还是sql server配置没有最优导致?二者之间的比例各占多少?1:判断sql server的配置是否最优化,... 阅读全文
posted @ 2014-12-29 15:10 fly_zj 阅读(4970) 评论(0) 推荐(2)
2013年4月23日
在sqlserver中,优化器如何利用统计信息来估算返回的行数(三)
摘要: 来看看多列过滤是如何估计返回的行数 use AdventureWorksgo--把毫秒全置为0,便于看到效果update dbo.DatabaseLog set PostTime=cast(CONVERT(varchar,PostTime,120) as datetime)update statistics DatabaseLog with fullscan--创建event索引creat... 阅读全文
posted @ 2013-04-23 20:38 fly_zj 阅读(625) 评论(0) 推荐(1)
2013年4月21日
在sqlserver中,优化器如何利用统计信息来估算返回的行数(二)
摘要: 如果在TSQL中使用临时变量,优化器又是如何来评估行数的? dbcc FreeProcCache declare @dt datetime='2006-04-26 11:44:30.217' select * from dbo.DatabaseLog where PostTime=@dt OPTION ( QUERYTRACEON 3... 阅读全文
posted @ 2013-04-21 21:20 fly_zj 阅读(394) 评论(0) 推荐(0)
在sqlserver中,优化器如何利用统计信息来估算返回的行数(一)
摘要: 先来看一幅图: 优化器是根据统计信息来生成执行计划的,具体来说是根据物理操作符(physical operator)预估返回的行数来生成执行计划的, 优化器预先是不知道真实数据分布情况的,所以统计信息准确与否直接决定了执行计划的优劣 先来看过滤条件为一个字段是如何评估返回的行数? use AdventureWorks go ... 阅读全文
posted @ 2013-04-21 20:27 fly_zj 阅读(550) 评论(0) 推荐(0)
2012年8月19日
小批量的删除大表数据
摘要: 当要删除大表的数据时,一定要小批量的删除相应行,这样带来的好处为: 1:一个事物删除少数行,避免由行锁转化为表锁,从而阻塞业务的正常运行 2:事务提交后,日志文件可以重复使用! 以下有两种小批量的删除行的解决方案,测试它们的性能如何: 首先填充测试表: USE AdventureWorksGOSELECT * INTO TransactionHistory_temp FROM Producti... 阅读全文
posted @ 2012-08-19 16:34 fly_zj 阅读(581) 评论(0) 推荐(1)
2012年8月18日
autoShrink和手动收缩数据文件
摘要: 1:当autoshrink开启时,如果手动收缩数据文件,会提示错误,因为此时有个后台线程正在收缩数据文件,那有没有办法kill掉这个后台线程呢? 答案是没有,只能关闭数据库选项autoshrink,然后一直等到,直到该线程自己结束!详细的说明在【这里】 2:能不能收缩数据文件? 看看收缩数据文件的缺点:详细的介绍在【这里】,现摘录如下: a:收缩文件时会把该数据文件... 阅读全文
posted @ 2012-08-18 15:31 fly_zj 阅读(641) 评论(0) 推荐(0)
2012年8月13日
TSQL糟糕的编码规范
摘要: 作为一名DBA,不免要与形形色色的TSQL代码打交道,看以下的三例: 1:distinct 中乱用括号: SELECT DISTINCT (TransactionID),ProductID,TransactionTypeFROM adventureworks.Production.TransactionHistoryArchive 与下面这句结果是一模一样,但上面这句可能使人迷糊... 阅读全文
posted @ 2012-08-13 20:53 fly_zj 阅读(357) 评论(0) 推荐(0)
2012年8月11日
EXISTS,IN,连接查询在SQL2008R2中性能如何?
摘要: 在查询中使用exists来进行判断性能会高,因为exists有短路的效果,整个表不必查完,通常比IN效果来的好,现在SQL2008R2中用代码测试一下,看看结果: 首先是使用IN来查询: DBCC FREEPROCCACHECHECKPOINTDBCC DROPCLEANBUFFERSSELECT * FROM sales.salesorderheader AS soh WHERE contact... 阅读全文
posted @ 2012-08-11 20:58 fly_zj 阅读(602) 评论(0) 推荐(1)
子查询,连接查询,在SQL2008R2中性能如何?
摘要: 以前或多或少的听说过,能用子查询的地方改用连接查询,性能有提升,如下的伪代码 select * from tab1 where col1 in (select col1 from tab2)select * from tab1 inner join tab2 on tab1.col1=tab2.col2 这种使用连接查询代替子查询的写法,据说在SQL2000中有效果,我没有测试过,这次... 阅读全文
posted @ 2012-08-11 20:27 fly_zj 阅读(1347) 评论(0) 推荐(0)
添加组合索引时,做相等运算字段应该放在最前面
摘要: 有一个通常的误解,觉得应该把选择性高的字段放在最前面,这通常只是针对一个字段的索引,对于组合索引,常常要把做等式运算的字段放在最前面,看看测试 USE AdventureWorksGOCREATE TABLE demo1 ( id INT identity(1,1) PRIMARY KEY, gender char(1) NOT NULL , age int NOT NUL... 阅读全文
posted @ 2012-08-11 14:44 fly_zj 阅读(1359) 评论(0) 推荐(0)
下一页
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3