sql-server – 如果在查询中定义了CTE并且从未使用它,它是否发出
发布时间:2020-12-12 06:15:14 所属栏目:MsSql教程 来源:网络整理
导读:查询中未使用的CTE是否会影响性能和/或更改生成的查询计划? 解决方法 它们似乎没有,但这实际上只适用于嵌套的CTE. 创建两个临时表: CREATE TABLE #t1 (id INT);INSERT #t1 ( id )VALUES ( 1 );CREATE TABLE #t2 (id INT);INSERT #t2 ( id )VALUES ( 1 ); 查
查询中未使用的CTE是否会影响性能和/或更改生成的查询计划?
解决方法它们似乎没有,但这实际上只适用于嵌套的CTE.创建两个临时表: CREATE TABLE #t1 (id INT); INSERT #t1 ( id ) VALUES ( 1 ); CREATE TABLE #t2 (id INT); INSERT #t2 ( id ) VALUES ( 1 ); 查询1: WITH your_mom AS ( SELECT TOP 1 * FROM #t1 AS t ),also_your_mom AS ( SELECT TOP 1 * FROM #t2 AS t ) SELECT * FROM your_mom; 查询2: WITH your_mom AS ( SELECT TOP 1 * FROM #t1 AS t ),also_your_mom AS ( SELECT TOP 1 * FROM #t2 AS t ) SELECT * FROM also_your_mom; 查询计划: 有一个开销,但查询的不必要部分很早就消除了(在这种情况下解析期间;在更复杂的情况下的简化阶段),因此额外的工作真的是最小的,并且不会导致潜在的昂贵的基于成本的优化. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- Win2003+IIS6.0+php5.2.2+MySQL 5.0.41+ZendOptimizer 3.2.
- SQL Server“无法对包含聚合或子查询的表达式执行聚合函数”
- mysql5.6安装配置方法图文教程
- mysql unix准换时间格式查找指定日期数据代码
- sql-server – T-SQL时间平均
- sql-server – 在使用db时,是否存在对日志运行DBCC SHRINKF
- Sqlserver中查询存储过程是否包含某些文本
- 将sql日期与javascript日期进行比较
- 使用phpMyAdmin修改MySQL数据库root用户密码的方法
- sql – 有没有办法使用If语句的条件作为其值?