SQL脚本书写注意事项—性能分析(一)
来源:互联网 发布:linux装php环境 编辑:程序博客网 时间:2024/06/06 14:22
背景描述:
在数据库服务器上发现有个SQL进程占用CPU过高,一直处于高位状态。现需要追踪找到导致该问题的原因所在。
追踪过程:略。
原因分析:
在数据中有一个存储过程,该SP里面有一个变量被定为为
DECLARE @Name VARCHAR(50)
但是在一段从表A里面查询数据的条件里面有一行代码是:WHERE A.Name = @Name
该A表中字段的定义类型是CHAR(50),这样在执行该查询的时候,SQLServer隐式转化char到varchar数据类型(从低优先级向高优先级转化),而该表数据量达到了1400万条数据。这导致了严重的性能消耗。
解决方法:
很简单,在该SP里面定义该变量的时候,需要和数据库中的数据类型保持一致,即定义为 DECLARE @Name CHAR(50)
经验总结:
我们在书写SQL脚本的时候一定要注意一些细节内容,即使是一个变量的定义,数据类型或者长度的定义,都应该时刻注意对数据库查询性能的影响。
- SQL脚本书写注意事项—性能分析(一)
- Pig脚本书写时候注意事项
- 书写sql时的注意事项
- 数据库SQL语句书写注意事项
- 数据库SQL语句书写注意事项
- mysql sql语句书写注意事项
- 书写安全Shell脚本的注意事项
- Mybatis书写sql时各种注意事项
- 赏心悦目!SQL Server漂亮脚本书写格式
- dotTrace性能分析之书写延迟
- SQL 性能察看脚本
- SQL 性能察看脚本
- MySQL性能分析脚本
- 书写优雅的shell脚本(一)- if语句
- 硕士论文书写注意事项
- getElementById 书写注意事项
- Mail 书写注意事项
- CSS代码书写注意事项
- 杂记之TCP/IP协议簇
- HTTP协议是无状态协议,怎么理解?
- Nginx日志监控(包括可视化)工具
- Google C++ Style Guide 的Header File 部分 翻译
- Sparse Table算法
- SQL脚本书写注意事项—性能分析(一)
- 如何在C++中使用GDI+
- 树<1>
- 几种数据库的区别
- C读取txt教程
- 在C++中使用GDI+
- 进程和线程
- VC++2008编译X264
- 杂记之BOOTLOAD和U-BOOT