where 1=-1 and 1=1 会不会影响查询效率?

简介:                     今天用sql profiler跟一个底层生成的SQL 的时候,跟到这样一段代码:       WITH TempQuery AS( SELECT *, ROW_NUMBER() OVER (ORDER BY CreateTime DESC) AS 'RowNumberForSplit' FROM (select E.


           

        今天用sql profiler跟一个底层生成的SQL 的时候,跟到这样一段代码:


     

WITH TempQuery AS
(
    SELECT *, ROW_NUMBER() OVER (ORDER BY  CreateTime DESC) AS 'RowNumberForSplit'
	FROM (select E.Name as Name, U.RealyName as RealyName,C.[Description] as Descriptions,'求职者' as tsf ,C.Result,C.CreateTime from [Mr].[User_Complaint] UC inner join [Mr].[User] U on UC.UserCode=U.Code inner join [Mr].[Complaint] C  on UC.ComplaintCode=C.Code inner join [Mr].[Enterprise] E on UC.EnterpriseCode=E.Code union select E.Name as Name, U.RealyName as RealyName,C.[Description] as Descriptions,'企业' as tsf ,C.Result,C.CreateTime from [Mr].[Enterprise_Complaint] EC inner join [Mr].[Enterprise] E on EC.EnterpriseCode=E.Code inner join [Mr].[Complaint] C on EC.ComplaintCode =C.Code inner join [Mr].[User] U on EC.UserCode=U.Code) CP
	WHERE 1 = 1  AND  1=1
	
)
SELECT * 
FROM TempQuery 
WHERE RowNumberForSplit BETWEEN 1 AND 10;
SELECT COUNT(1) AS TOTAL_COUNT FROM (select E.Name as Name, U.RealyName as RealyName,C.[Description] as Descriptions,'求职者' as tsf ,C.Result,C.CreateTime from [Mr].[User_Complaint] UC inner join [Mr].[User] U on UC.UserCode=U.Code inner join [Mr].[Complaint] C  on UC.ComplaintCode=C.Code inner join [Mr].[Enterprise] E on UC.EnterpriseCode=E.Code union select E.Name as Name, U.RealyName as RealyName,C.[Description] as Descriptions,'企业' as tsf ,C.Result,C.CreateTime from [Mr].[Enterprise_Complaint] EC inner join [Mr].[Enterprise] E on EC.EnterpriseCode=E.Code inner join [Mr].[Complaint] C on EC.ComplaintCode =C.Code inner join [Mr].[User] U on EC.UserCode=U.Code) CP WHERE 1 = 1  AND  1=1


       然后你就看到后面跟着的where 1=1 and 1=1,以前也用过这个东西拼过条件,但是后来有人说这样影响查询性能,再后来又有人说不影响。然后我就迷茫了。。。



      还是自己做个实验测试下吧。


       首先,先看一下没有这个条件的查询:


      

/****** Script for SelectTopNRows command from SSMS  ******/
SELECT TOP 100000 [RESOURCE_ID]
      ,[CLASS]
      ,[SORT_ID]
      ,[XML_CONTENT]
      ,[SEARCH_CONTENT]
      ,[ROW_ID]
  FROM [MCS_WORKFLOW].[WF].[GENERIC_FORM_RELATIVE_DATA] WHERE 1=1 AND 1=1

       然后使用执行计划来估计下:

         

       




       然后加入条件:


          

      


在执行计划中可以看到,开销几乎全部在聚集索引表的扫描上,对比上图,发现这两张表数据一致。


       

       

      

     嘿嘿,看来他们的查询效率是一样的。


     but why????百度下吧。。。。







目录
相关文章
|
1月前
|
存储 C#
【C#】大批量判断文件是否存在的两种方法效率对比
【C#】大批量判断文件是否存在的两种方法效率对比
42 1
|
6月前
|
缓存 关系型数据库 MySQL
MySQL查询优化:提速查询效率的13大秘籍(合理使用索引合并、优化配置参数、使用分区优化性能、避免不必要的排序和group by操作)(下)
MySQL查询优化:提速查询效率的13大秘籍(合理使用索引合并、优化配置参数、使用分区优化性能、避免不必要的排序和group by操作)(下)
294 0
|
4月前
|
SQL 关系型数据库 MySQL
MySQL设计规约问题之为什么在使用LIMIT进行分页时要注意效率,并且LIMIT的值越大效率越低
MySQL设计规约问题之为什么在使用LIMIT进行分页时要注意效率,并且LIMIT的值越大效率越低
|
4月前
|
数据处理 数据库 索引
数据库索引策略如何影响数据的读取效率?
【7月更文挑战第3天】数据库索引策略如何影响数据的读取效率?
35 2
|
SQL 存储 缓存
原来count(*)就是我们系统的接口性能变差100倍的真凶…
原来count(*)就是我们系统的接口性能变差100倍的真凶…
Kam
|
SQL 存储 关系型数据库
|
SQL 存储 缓存
|
存储 XML 缓存
Sp效率分析和理解
目录介绍 01.Sp简单介绍 1.1 Sp作用分析 1.2 案例分析思考 02.Sp初始化操作 2.1 如何获取sp 2.2 SharedPreferencesImpl构造 03.edit方法源码 04.
9099 0