`
touchinsert
  • 浏览: 1314135 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

mssql怪事:难道从100条记录里取出不重复的,就需要4秒钟??!!

 
阅读更多

select distinct f1 from viewABC 需要5秒钟,
而select f1 from viewABC 只需要1秒钟,而且记录数也不到100条
难道从这100条记录里再取出不重复的,就需要4秒钟??!!

感觉是数据库引擎优化时自动把distinct移到viewABC里面去执行了,
所以优化反而成了弄巧成拙。。。。。。

怎么阻止它这样“优化”呢?


select distinct f1 from (
select f1 from viewABC
) a
也要5秒

select f1,count(*) from (
select f1 from viewABC
) a
group by f1
也要5秒

declare @tb table(f1 varchar(100))
insert @tb select f1 from viewABC

select distinct f1 from @tb
就只要1秒!


但是这个过程无法作为视图,因为含有declare。。。。。。。


看来的确是mssql的优化“弄巧成拙”!

分享到:
评论

相关推荐

    MSSQL百完数据翻页

    - 查询上一页的数据:选择从下一页第一个产品的`ProductId`之前的前10条记录,包括`ProductId`、`ProductName`和`Introduction`,先按`ProductId`降序排列后再次按升序排序。 #### 3. **实现原理详解** - **统计...

    MSSQL2KSP4

    标题"MSSQL2KSP4"指的是微软SQL Server 2000的Service Pack 4 (SP4)更新。SQL Server 2000是一款由微软公司开发的关系型数据库管理系统,广泛应用于企业级数据存储、管理和分析。SP4是SQL Server 2000的最后一个重大...

    mssql-jdbc-8.2.0.jre8-API文档-中英对照版.zip

    赠送jar包:mssql-jdbc-8.2.0.jre8.jar; 赠送原API文档:mssql-jdbc-8.2.0.jre8-javadoc.jar; 赠送源代码:mssql-jdbc-8.2.0.jre8-sources.jar; 赠送Maven依赖信息文件:mssql-jdbc-8.2.0.jre8.pom; 包含翻译后...

    DBeaver连接MSSQL驱动

    总结,DBeaver连接MSSQL驱动是数据库管理员和开发人员日常工作中不可或缺的工具,它提供了一种直观、高效的方式来管理和操作SQL Server数据库。正确配置和使用MSSQL驱动,能极大提高工作效率,并为数据库管理和开发...

    易语言mssql数据库操作实例

    易语言是一种基于中文编程的程序设计语言,它的目标是让编程变得更加简单易懂。在“易语言mssql数据库操作实例”中,我们将探讨如何利用易语言来与Microsoft SQL Server(简称mssql)进行交互,执行数据库的基本操作...

    MSSQL2000与MSSQL2005 JDBC URL的区别

    在探讨MSSQL2000与MSSQL2005在JDBC URL上的区别之前,我们需要先了解一些基础知识。 ### JDBC简介 Java Database Connectivity (JDBC) 是一种用于执行SQL语句的Java API,它可以为多种关系数据库提供统一访问,它...

    删除MSSQL数据库中的表和清除记录小工具有源代码

    标题中的“删除MSSQL数据库中的表和清除记录小工具有源代码”表明这是一个用于管理Microsoft SQL Server数据库的工具,其主要功能是帮助用户方便地删除数据库中的表以及清除表内的记录。这样的工具在数据库开发和...

    MSSQL2005中删除重复项

    通过以上分析,我们可以看到,在MSSQL2005中删除重复记录是一项既简单又复杂的工作。简单在于只需一条SQL语句即可完成任务;复杂则体现在如何高效准确地定位并删除重复项。希望本文能为读者提供一定的参考价值。

    dcm4chee-2.18.1-mssql.zip

    综上所述,dcm4chee-2.18.1-mssql.zip 是一个功能强大且高度定制化的 DICOM 解决方案,专为那些需要高效处理 DICOM 图像数据的医疗机构设计。通过深入了解其特性和应用场景,可以帮助用户更好地利用这一工具提升工作...

    ASP+MSSQL源码:漂亮房产中介公司网站源码

    该资源是一个基于ASP和MSSQL数据库的房产中介公司网站的源代码,旨在提供一个功能齐全、设计漂亮的在线平台,帮助房产中介公司展示房源信息、管理客户查询以及进行线上交互。下面将详细介绍其中涉及的关键技术点和...

    MSSQL-jdbc驱动

    MSSQL-jdbc驱动属于Type 4,这是一种纯Java实现的驱动,无需依赖于数据库供应商提供的本地库。这意味着它可以在任何支持Java的平台上运行,提供跨平台的数据库连接能力。 **连接步骤** 1. **添加驱动**: 首先,...

    MSSQL日志解析和浏览工具

    一款真正意义上的MSSQL日志分析和浏览工具,直接解析LDF文件,支持SQL2008,SQL2005,SQL2000. 程序主要功能: 1:\l日志浏览. 用户可以输入指定的日志块序号,程序从指定的日志块往下浏览,可以快速定位需要查看的日志...

    mssql盲注.txt

    MSSQL盲注是一种常见的安全漏洞攻击方式,通过对应用程序的输入进行精心构造,可以在不知道任何具体反馈的情况下,逐步获取数据库中的敏感信息。对于开发人员来说,加强输入验证、限制查询结果以及使用参数化查询等...

    mssql-jdbc-6.1.0.jre8-API文档-中英对照版.zip

    赠送jar包:mssql-jdbc-6.1.0.jre8.jar; 赠送原API文档:mssql-jdbc-6.1.0.jre8-javadoc.jar; 赠送源代码:mssql-jdbc-6.1.0.jre8-sources.jar; 赠送Maven依赖信息文件:mssql-jdbc-6.1.0.jre8.pom; 包含翻译后...

    PHP+MSSQL的简单分页 - 4ngel's blog

    1. **确定每页显示的记录数**:这是分页的基础,开发者需要根据实际需求设定每页显示多少条记录。 2. **获取总记录数**:为了计算出总页数,我们需要首先查询数据库以获得总的记录数。 3. **计算总页数**:有了总...

    SSIS:从MsSql到Mysql

    ### SSIS:从MsSql到Mysql 数据迁移详解 #### 一、背景介绍 随着不同组织间业务合作的增加,数据库之间的数据迁移变得越来越频繁。本文档主要关注如何使用SQL Server Integration Services (SSIS)从Microsoft SQL ...

    海洋分类信息网V5.1Mssql商业正式版

    海洋分类信息网V5.1Mssql商业正式版 海洋分类信息网V5.1Mssql商业正式版http://shop.fytcw.com

    jsp开发需要的mssql数据库驱动包

    对于MSSQL,我们通常使用类型4的驱动,也称为纯Java驱动或JDBC-ODBC桥接器,它不需要依赖于ODBC(Open Database Connectivity)。 在JSP项目中,要使用MSSQL数据库,我们需要下载并添加对应的JDBC驱动到项目的类...

    MSsql数据表生成sql脚本

    在IT行业中,数据库管理是至关重要的任务之一,而SQL(Structured Query Language)是管理关系型数据库的标准语言。本文将深入探讨“MSsql数据表生成sql脚本”这一主题,以及如何利用“顺风数据库工具”来实现这个...

    使用Sql语句建Mssql库,建表

    例如,插入一条新记录可以使用`INSERT INTO`语句,查询数据可以使用`SELECT`语句,更新记录使用`UPDATE`,删除记录使用`DELETE FROM`。 了解了这些基础概念,你就能有效地利用SQL和易语言外部数据库接口进行MSSQL...

Global site tag (gtag.js) - Google Analytics