SQL优化:使用查询提示
来源:互联网 发布:python 下载pdf文件 编辑:程序博客网 时间:2024/05/27 02:29
先从一个问题开始:
刚在MSDN上看到对Option的解释为:指定应在整个查询中使用所指定的查询提示。 每个查询提示只能指定一次,但允许指定多个查询提示。 使用该语句只能指定一个 OPTION 子句。
请问如下问题:
1.查询提示是什么意思?
2."每个查询提示只能指定一次,但允许指定多个查询提示"这又是什么意思?
3.Option中经常用(fast 整数),请问其中的fast和整数分别是什么意思?
4.SELECT语句中用Option子语句后好象会提高整个语句的速度吗?
1、查询提示是sql server提供的,用于修改查询优化器行为的一种参数,之所以sql server 要提供这个,主要是由于,有时候sql server不能产生最优化的执行计划,于是,你可以通过这个查询提示,来告诉优化器,要采用何种算法。
2、每个查询提示只能用一次,但允许使用多个查询提示。
查询提示有N多种,比如:hash join,merge union ,fast N,maxdop N ,有一大堆。
你不能在一个查询中指定多次 hash join,但你可以指定hash join,又指定 maxdop n,但你不能指定hash join两次,那就好报错啦。
比如:
select * from ( select 'abc' as v,1 as vid union all select 'cd',2 )a inner join ( select 'cd' as v,2 as vid union all select 'abc',1 )b on a.vid = b.vid option(hash join,maxdop 2)
3、FAST number_rows
指定对查询进行优化,以便快速检索第一个 number_rows.。该值是非负整数。在返回第一个number_rows 后,查询继续执行并生成完整的结果集。这个一般用于那种分页的查询,比如查询结果一共100行,指定number_rows为10,那就是采用最快返回前10行的算法,当然后面的90也会返回,也就是他对这些返回的数据,采用了优先级,SQL SERVER 生成了优先返回10行的算法,而不是一次性返回100行的算法。
4、关于是否能提高性能这个说法,我在实际工作中经常用,有时候效果非常明显,特别是对于表关联的查询提示,或者是联接提示。
很多时候,同事说这个查询太慢要5分钟才能查询出结果,于是加上了inner hash join后,只要5秒就能返回结果,火箭般的速度,但有时候加了效果不大,所以这个你可以多试试,
比如:
select * from ( select 'abc' as v,1 as vid union all select 'cd',2 )a inner join ( select 'cd' as v,2 as vid union all select 'abc',1 )b on a.vid = b.vid option(hash join)select * from ( select 'abc' as v,1 as vid union all select 'cd',2 )a inner hash join --这个联接提示,更为灵活,适用于多表关联( select 'cd' as v,2 as vid union all select 'abc',1 )b on a.vid = b.vid
0 0
- SQL优化:使用查询提示
- SQL Server查询优化之:使用提示(Hints)
- 使用查询计划优化查询(SQL SERVER)
- 使用use index优化sql查询
- 使用use index优化sql查询
- 使用explain来优化查询SQL
- 【sql查询与优化】5.使用字符串
- 查询优化【SQL优化】
- 优化PL/SQL过程调用,使用NOCOPY提示
- 18 SQL优化--查询优化
- sql查询优化 索引优化
- sql查询优化 索引优化
- SQL查询优化,索引优化
- sql查询优化 索引优化
- SQL语句优化(查询优化)
- SQL 查询优化 索引优化
- SQL分页查询优化
- 查询优化 sql
- Vulkan Programming Guide 第一章 第一节
- 重定向与请求转发的区别
- opencv调整图片
- 用PHP判断是否是手机端
- 分片的NAL单元(FU-A分片)
- SQL优化:使用查询提示
- maven的核心知识点
- Ubuntu 下安装MySQL及其简单命令
- 从移动到桌面—ARM挑战X86
- 统计工龄
- 通过反射 动态初始化方法
- android 群英传笔记 listview的一些相关小记录
- Gradle project sync failed. Please fix your project and try again | gradle's dependency cache may be
- Sublime Text3 打开自动弹出更新通知的解决办法