SQL Server 2008 性能调优 optimize for ad hoc workloads

本文涉及的产品
云数据库 RDS SQL Server,基础系列 2核4GB
RDS SQL Server Serverless,2-4RCU 50GB 3个月
推荐场景:
简介: 参数化和即席查询,都是一个二难的选择。 一旦选择参数化 就有可能带来 一种情况就是 执行计划反复被利用。 不会通过收集现有的统计信息,出一个比较优异的执行计划。 即席查询也就是 ad hoc query,每次都需要重编译,花费比较大。

参数化和即席查询,都是一个二难的选择。

一旦选择参数化 就有可能带来 一种情况就是 执行计划反复被利用。

不会通过收集现有的统计信息,出一个比较优异的执行计划。

即席查询也就是 ad hoc query,每次都需要重编译,花费比较大。

这个是一个2难,需要平衡。对于这个问题 sql server 有 简单参数化,强制参数化和2008 才有的optimize for ad hoc workloads。

optimize for ad hoc workloads 的原理大概如此:

当你第一次执行 ad hoc 查询的时候,被编译出来的执行计划,sql server 存个一部分。
为什么不全存呢,如果全存,adhoc 查询很频繁,那么不就给 内存带来压力了。 

当你第二次查询的时候,就保存这个执行计划。

当你第三次运行的时候,就可以直接从cache 内读取出来执行计划。

EXEC sp_configure 'show advanced options',1
RECONFIGURE
EXEC sp_configure 'optimize for ad hoc workloads',1
RECONFIGURE

对sql server 运行还是又好处的,没事儿就开着吧

相关实践学习
使用SQL语句管理索引
本次实验主要介绍如何在RDS-SQLServer数据库中,使用SQL语句管理索引。
SQL Server on Linux入门教程
SQL Server数据库一直只提供Windows下的版本。2016年微软宣布推出可运行在Linux系统下的SQL Server数据库,该版本目前还是早期预览版本。本课程主要介绍SQLServer On Linux的基本知识。 相关的阿里云产品:云数据库RDS SQL Server版 RDS SQL Server不仅拥有高可用架构和任意时间点的数据恢复功能,强力支撑各种企业应用,同时也包含了微软的License费用,减少额外支出。 了解产品详情: https://www.aliyun.com/product/rds/sqlserver
目录
相关文章
|
SQL 安全 数据库
提示:SQL Server 阻止了对组件'Ad Hoc Distributed Queries '的STATEMENT 'OpenRowset/OpenDatasource'
在程序中系统提示:SQL Server 阻止了对组件 ‘ Ad Hoc Distributed Queries ’ 的 STATEMENT  ‘ OpenRowset/OpenDatasource ’ 的访问,因为此组件已作为此服务器安全配置的一部分而被关闭。
2094 0
|
SQL 安全
SQL Server 阻止了对组件 'Ad Hoc Distributed Queries' 的 STATEMENT'OpenRowset/OpenDatasource' 的访问,因为此组件已作为此服务器安全配置的一部分而被关闭。
转自 http://www.cnblogs.com/wayne-ivan/archive/2008/01/07/1028759.html   SELECT * INTO XLImport3 FROM OPENDATASOURCE('Microsoft.
1041 0
|
2月前
|
关系型数据库 MySQL 网络安全
5-10Can't connect to MySQL server on 'sh-cynosl-grp-fcs50xoa.sql.tencentcdb.com' (110)")
5-10Can't connect to MySQL server on 'sh-cynosl-grp-fcs50xoa.sql.tencentcdb.com' (110)")
|
4月前
|
SQL 存储 监控
SQL Server的并行实施如何优化?
【7月更文挑战第23天】SQL Server的并行实施如何优化?
115 13
|
4月前
|
SQL
解锁 SQL Server 2022的时间序列数据功能
【7月更文挑战第14天】要解锁SQL Server 2022的时间序列数据功能,可使用`generate_series`函数生成整数序列,例如:`SELECT value FROM generate_series(1, 10)。此外,`date_bucket`函数能按指定间隔(如周)对日期时间值分组,这些工具结合窗口函数和其他时间日期函数,能高效处理和分析时间序列数据。更多信息请参考官方文档和技术资料。
|
4月前
|
SQL 存储 网络安全
关系数据库SQLserver 安装 SQL Server
【7月更文挑战第26天】
61 6
下一篇
无影云桌面