SQLServer优化二

建立合理的索引,避免扫描多余数据,避免表扫描!几百万条数据,照样几十毫秒完成查询。关于SQL查询效率,100w数据,查询只要1秒,与您分享!

查询效率分析: 子查询为确保消除重复值,必须为外部查询的每个结果都处理嵌套查询。在这种情况下可以考虑用联接查询来取代。 如果要用子查询,那就用EXISTS替代IN、用NOT EXISTS替代NOT IN。因为EXISTS引入的子查询只是测试是否存在符合子查询中指定条件的行,效率较高。无论在哪种情况下,NOT IN都是最低效的。因为它对子查询中的表执行了一个全表遍历。

建立合理的索引,避免扫描多余数据,避免表扫描! 几百万条数据,照样几十毫秒完成查询.

机器情况 p4: 2.4 内存: 1 G os: windows 2003 数据库: ms sql server 2000 目的: 查询性能测试,比较两种查询的性能

SQL查询效率 step by step

-- setp 1. -- 建表

create table t_userinfo ( userid int identity(1,1) primary key nonclustered, nick varchar(50) not null default '', classid int not null default 0, writetime datetime not null default getdate() ) go

-- 建索引

create clustered index ix_userinfo_classid on t_userinfo(classid) go

-- step 2.

declare @i int declare @k int declare @nick varchar(10) set @i = 1 while @i<1000000 begin set @k = @i % 10 set @nick = convert(varchar,@i) insert into t_userinfo(nick,classid,writetime) values(@nick,@k,getdate()) set @i = @i + 1 end

-- 耗时 08:27 ,需要耐心等待

-- step 3.

select top 20 userid,nick,classid,writetime from t_userinfo where userid not in ( select top 900000 userid from t_userinfo order by userid asc )

-- 耗时 8 秒 ,够长的

-- step 4.

select a.userid,b.nick,b.classid,b.writetime from ( select top 20 a.userid from ( select top 900020 userid from t_userinfo order by userid asc ) a order by a.userid desc ) a inner join t_userinfo b on a.userid = b.userid order by a.userid asc

-- 耗时 1 秒,太快了吧,不可以思议

-- step 5 where 查询

select top 20 userid,nick,classid,writetime from t_userinfo where classid = 1 and userid not in ( select top 90000 userid from t_userinfo where classid = 1 order by userid asc )

-- 耗时 2 秒

-- step 6 where 查询

select a.userid,b.nick,b.classid,b.writetime from ( select top 20 a.userid from ( select top 90000 userid from t_userinfo where classid = 1 order by userid asc ) a order by a.userid desc ) a inner join t_userinfo b on a.userid = b.userid order by a.userid asc

-- 查询分析器显示不到 1 秒.

转载于:https://www.cnblogs.com/hx214blog/archive/2012/05/23/2514761.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/576439.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

大数据技术之kafka (第 3 章 Kafka 架构深入) Kafka 事务

Kafka 从 0.11 版本开始引入了事务支持。事务可以保证 Kafka 在 Exactly Once 语义的基础上&#xff0c;生产和消费可以跨分区和会话&#xff0c;要么全部成功&#xff0c;要么全部失败 3.6.1 Producer 事务 为了实现跨分区跨会话的事务&#xff0c;需要引入一个全局唯一的 T…

JasperReport里面的Demo

1. alterdesign 该例子演示了报表编译后&#xff0c;在报表展现的时候如何动态的控制其中的元素比如让某一个矩形变色或其他 2. antcompile 演示如何让 ant 来编译 3. chart 演示了如何在报表中添加图像&#xff0c;JasperReport是用Scriptlet的方式往报表中添加图像&#xff0…

LinkedList源码阅分析

LinkedList里面涉及到的一些操作&#xff0c;非常细致&#xff0c;以避免出现的空指针&#xff0c;理解后对于其优点与确定会有一个更加整体的认识吧。 继承关系图(对比ArrayList) 元素的存储结构 在LinkedList中&#xff0c;每一个元素都是Node存储&#xff0c;Node拥有一个存…

Windows Azure Marketplaces上的Bing Search API可用啦!

Windows Azure Marketplace上的Bing Search API 现在可用啦&#xff01;通过此服务&#xff0c;你可以嵌入web、图像、新闻和视频搜索结果&#xff0c;以及相关的搜索和拼写建议来创建独特的应用程序和服务。 你也可以将数据集里的信息通过标准化的数据服务整合到应用程序中&am…

取消选中目标CALL

事先在游戏里选中一个怪物bp send,回到游戏里,按ESC&#xff0c;OD断下来,复制 返回到 elementc.072AFDD8 005869B2 返回到 elementc.005869B2 来自 elementc.0058E8A0072AFDEC 00588B1F 返回到 elementc.00588B1F 来自 elementc.00586980072AFE28 005A7346 返回到 el…

《深入理解java虚拟机》第1章 走近Java

1.6实战:自己编译JDK 想要一探JDK内部的实现机制&#xff0c;最便捷的路径之一就是自己编译- -套JDK,通过阅读和跟踪调试JDK源码去了解Java技术体系的原理&#xff0c;虽然门槛会高一点&#xff0c;但肯定会比阅读各种书籍、文章更加贴近本质。另外&#xff0c;JDK中的很多底层…

【XDA汉化组编写】Android软件汉化/精简/去广告/优化教程 FAQ

* 引用、转载请注明出处&#xff1a;XDA智能手机论坛-bbs.xda.cn-iKira&#xff01; http://bbs.xda.cn/thread-10968699-1-1.html* 汉化其实不难&#xff0c;难的是持之以恒&#xff0c;祝各位机友学有所得。转载于:https://www.cnblogs.com/dongzhiquan/archive/2012/05/30/2…

《深入理解java虚拟机》第2章 Java内存区域与内存溢出异常

Java与C之间有一堵由内存动态分配和垃圾收集技术所围成的“高墙”&#xff0c;墙外面的人想进去&#xff0c;墙里面的人却想出来。 2.1 概述 https://blog.csdn.net/q5706503/article/details/84640762 对于从事C、C程序开发的开发人员来说&#xff0c;在内存管理领域&#…

管理学习(2)——职场中最重要的四件事

职场中最重要的四件事职场的核心精髓可以概括为职场中最重要的三件事&#xff0c;它们分别是&#xff1a;职场第一要务、职业化、职场的本质。 1.这三件事与身处职场的我们到底有什么关系呢&#xff1f; 就让我用三句话概括一下&#xff1a; 职场第一要务决定了我们在职场上的…

国内科技博客盘点

自从TechCrunch在2010年被AOL以三千万美金收购以后&#xff0c;国内的科技博客风起云涌&#xff0c;引起一股不小的科技博客热&#xff0c;至今为止&#xff0c;已是你方唱罢我登场&#xff0c;好不热闹&#xff0c;让我们来盘点一下国内近些年冒出来的一些比较知名的科技博客&…

线性表的定义和基本运算之线性结构

一、线性表的逻辑定义和性质 线性表是最简单和最常用的一种数据结构&#xff0c;他是由n个数据元素&#xff08;结点&#xff09;a1,a2,a3,a4........an组成的有限序列。其中&#xff0c;数据元素个数那位表的长度。当n为0时称为空表&#xff0c;非空的线性表通常记为 &#x…

TForm1*Form1=newTForm1(this); Form1-Show();

TForm1*Form1newTForm1(this);Form1->Show();通过 Wiz 发布转载于:https://www.cnblogs.com/xe2011/archive/2012/06/03/2532874.html

[科研笔记] 关于人工智能与算法项目的思考

原链接&#xff1a;https://blog.csdn.net/walilk/article/details/77131929 前言   [科研笔记] 系列是我在科研道路上的随笔和思考&#xff0c;内容不加以局限&#xff0c;是一个开放的文章系列&#xff0c;这也是给自己一点自由的空间。      本文是我结合自身经验给的…

数据结构的基本概念和抽象数据类型

1、基本概念和术语 数据&#xff1a;是对客观事物的符号表示。 数据元素&#xff1a;数据的基本单位&#xff0c;一个数据元素可由若干个数据项组成&#xff0c;数据项是数据的不可分割的最小单位 数据对象&#xff1a;性质相同的数据元素的集合是数据的一个子集 数据结构&…

Jquery实现列表框效果

在java web开发中&#xff0c;我们经常要用到列表框&#xff0c;特别在系统的权限管理中&#xff0c;如上图所示&#xff0c;要实现如上效果&#xff0c;请看下面的源代码&#xff1a;源代码如下&#xff1a;<html><head><title>全选效果</title><s…

项目过程管理

项目过程管理 1. 项目所需要的文档&#xff08;需要归档&#xff09; 需求文档&#xff08;需求评审时的问题列表&#xff09;技术文档&#xff08;技术评审时的问题列表&#xff09;排期文档开发文档&#xff08;记录开发过程中遇到的难题和解决方案&#xff09;测试文档&am…

数据结构之指针复习

废话不多说&#xff0c;拿起键盘就是干&#xff0c;直接上代码&#xff1a; #include <stdio.h>int main() {double *p;double x 66.6;p &x; //x占8个字节&#xff0c;一个字节占8位&#xff0c;一个字节一个地址double arr[3] { 1.1,2.2,3.3 };double *q;q &a…

51与PC通信协议设计及实现(三):51部分模块化分工及设计

整个的51部分的伪代码简写如下&#xff1a; 1 void sendData() 2 {} 3 void time() 4 {} 5 void keysChecked() 6 { 7 return loca; 8 return key_state; 9 }10 main()11 {12 init();13 while(1)14 {15 if(keysChecked 1) //放到中断处理比较好16 …

管理机器学习项目

管理机器学习项目 一. 目录 传统的软件项目管理目前的现状机器学习项目管理 二、传统的软件项目管理 传统的软件项目管理和开发流程已经非常成熟。大致的流程如下&#xff1a; 由运营、产品进行最初的功能策划&#xff0c;进行可行性分析由项目经理召集相关人员进行产品启…

拖拽自动生成的DataGridView和BindingSource操作数据库(增加,修改,删除)---自己实现...

参考&#xff1a;http://hi.baidu.com/j2eedoc/blog/item/507ca70e1281c4e036d122dc.html using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Fo…