查询优化问题!求助

问题描述

现在两个各有10W+条数据的表查询时很费时,而且经常出现进程aspnet_wp.exe被意外回收的情况,具体代码如下:SELECTa.DocumentID,a.ID,a.IsIncept,a.IsFiling,a.DocumentCode,a.Title,a.Resume,a.SubjectWord,a.FileSize,a.FileContent,b.PrmContentsASsecretGradeFROM(SELECTdbo.DocLinkArchive.*,dbo.Doc_InceptArchiveDoc.OldTableNoASDocumentCode,dbo.Doc_InceptArchiveDoc.FileTitleASTitle,dbo.Doc_InceptArchiveDoc.ResumeASResume,dbo.Doc_InceptArchiveDoc.ThemeWordASSubjectWord,dbo.Doc_InceptArchiveDoc.secretGradeASsecretGrade,dbo.Doc_InceptArchiveDoc.FileSizeASFileSize,dbo.Doc_InceptArchiveDoc.FileContentASFileContentFROMdbo.DocLinkArchiveINNERJOINdbo.Doc_InceptArchiveDocONdbo.DocLinkArchive.ID=dbo.Doc_InceptArchiveDoc.ID)aLEFTOUTERJOIN(SELECTID,PrmContentsFROMdbo.Doc_PrmDetailsWHEREDelFlag=0ANDPrmID=100)bONa.secretGrade=b.ID请教大虾们如何优化提高查询速度?

解决方案

解决方案二:
其中SELECTdbo.DocLinkArchive.*,dbo.Doc_InceptArchiveDoc.OldTableNoASDocumentCode,dbo.Doc_InceptArchiveDoc.FileTitleASTitle,dbo.Doc_InceptArchiveDoc.ResumeASResume,dbo.Doc_InceptArchiveDoc.ThemeWordASSubjectWord,dbo.Doc_InceptArchiveDoc.secretGradeASsecretGrade,dbo.Doc_InceptArchiveDoc.FileSizeASFileSize,dbo.Doc_InceptArchiveDoc.FileContentASFileContentFROMdbo.DocLinkArchiveINNERJOINdbo.Doc_InceptArchiveDocONdbo.DocLinkArchive.ID=dbo.Doc_InceptArchiveDoc.ID占查询成本的46%,平均查询时间在1分半左右
解决方案三:
去掉括号:LEFTOUTERJOINdbo.Doc_PrmDetailsbonDelFlag=0ANDPrmID=100a.secretGrade=b.ID-----查看一下条件的是否有索引
解决方案四:
条件字段没有建立索引改了之后无法运行啊!!~~
解决方案五:
好了可以运行了可是查询还是异常的慢!
解决方案六:
去嵌套查询,去外连接!改用SELECTdbo.DocLinkArchive.DocumentID,dbo.DocLinkArchive.ID,dbo.DocLinkArchive.IsFiling,dbo.DocLinkArchive.DocumentCode,dbo.Doc_InceptArchiveDoc.OldTableNoASDocumentCode,dbo.Doc_InceptArchiveDoc.FileTitleASTitle,dbo.Doc_InceptArchiveDoc.ResumeASResume,dbo.Doc_InceptArchiveDoc.ThemeWordASSubjectWord,--dbo.Doc_InceptArchiveDoc.secretGradeASsecretGrade,dbo.Doc_InceptArchiveDoc.FileSizeASFileSize,dbo.Doc_InceptArchiveDoc.FileContentASFileContent,dbo.Doc_PrmDetails.Doc_PrmDetailsASsecretGradefromdbo.DocLinkArchive,dbo.Doc_InceptArchiveDo,dbo.Doc_PrmDetailswheredbo.DocLinkArchive.ID=dbo.Doc_InceptArchiveDoc.IDandDoc_InceptArchiveDoc.secretGrade=Doc_PrmDetails.IDunionallSELECTdbo.DocLinkArchive.DocumentID,dbo.DocLinkArchive.ID,dbo.DocLinkArchive.IsFiling,dbo.DocLinkArchive.DocumentCode,dbo.Doc_InceptArchiveDoc.OldTableNoASDocumentCode,dbo.Doc_InceptArchiveDoc.FileTitleASTitle,dbo.Doc_InceptArchiveDoc.ResumeASResume,dbo.Doc_InceptArchiveDoc.ThemeWordASSubjectWord,--dbo.Doc_InceptArchiveDoc.secretGradeASsecretGrade,dbo.Doc_InceptArchiveDoc.FileSizeASFileSize,dbo.Doc_InceptArchiveDoc.FileContentASFileContent,nullfromdbo.DocLinkArchive,dbo.Doc_InceptArchiveDocwheredbo.DocLinkArchive.ID=dbo.Doc_InceptArchiveDoc.IDandnotexist(select'X'fromDoc_InceptArchiveDocwhereDoc_InceptArchiveDoc.secretGrade=Doc_PrmDetails.ID)
解决方案七:
试试看上面的语句,反正思想就是“去嵌套查询,去外连接”,然后用三个表连接查询再“unionall(不要是union)”不匹配“notexist(不要用notin)”最后一个表的条件的数据

时间: 2024-10-30 20:20:16

查询优化问题!求助的相关文章

android包名求助!!!!!!

问题描述 android包名求助!!!!!! 有人在APP或者其他地方见过com.android.phone.os这样的包吗? 解决方案 好像没有见过,os是在android.os 解决方案二: org.mozilla.firefox com.android.chrome 在国外网站下载的android安装包,似乎是那样分类的,社区的,公司的... 解决方案三: 我没大写清楚,这个是我们的一个APP经常报一个错误,从用户得到的错误消息堆栈有下面的信息:java.lang.NoSuchFieldE

求助贴:c语言编程问题

问题描述 求助贴:c语言编程问题 解决方案 在你的程序里scanf()函数返回的是一个正整数,无论你输入的是不是-1,他接收的一直是一个参数,所以返回的一直是1.并且还是使用"%lu"来接收参数的,输入-1一定不会退出程序的,输入1.2scanf()只接收到了1,因为1.2不符合输入的规则"%lu",也会返回1.程序不会停下 解决方案二: 疑惑:1.输入0有效,输出真确2.输入-1不退出,-1被强制转换为int类型3.输入1.2输出1个奇数后又printf();然后

asp.net求助????????,求解答

问题描述 asp.net求助????????,求解答 public virtual object DataSource { [TargetedPatchingOptOut("Performance critical to inline this type of method across NGen image boundaries")] get { return this.dataSource; } set { if (((value != null) && !(val

java-为什么我只运行下面的Server没运行Client,也有一个Client连上来,各位神求助啊

问题描述 为什么我只运行下面的Server没运行Client,也有一个Client连上来,各位神求助啊 import java.io.*;import java.net.*; public class ChatServer { public static void main(String[] args){ /*InetAddress ServerIPaddress=null; try { ServerIPaddress=InetAddress.getLocalHost();} catch (Un

django-Django-cas 单点登录求助大神

问题描述 Django-cas 单点登录求助大神 报错信息:[Errno socket error] [Errno 1] _ssl.c:504: error:14077438:SSL routines:SSL23_GET_SERVER_HELLO:tlsv1 alert internal error Django Setting文件里面已经安装配置配置了,附上setting部分代码: INSTALLED_APPS = ( 'django.contrib.admin' 'django.contri

求助,正则表达式关于扩展名

问题描述 求助,正则表达式关于扩展名 我想检验后缀名为doc;ppt;exe可以输入一个或多个扩展名.多个用";"号隔开.就像我上面写的那样.该怎么写呢? 解决方案 ^[a-zd]+(;[a-zd]+)*$ 解决方案二: 提取扩展名的正则表达式求助正则表达式正则表达式

js-新手求助关于根据选中的radio而获取同一行里面的所有td的值

问题描述 新手求助关于根据选中的radio而获取同一行里面的所有td的值 求教,想根据选中的radio来获取该radio所在那一行里面的所有的td值(每个td里面的值要分别获取出来) 该怎么做呢? <c:forEach items="${logoutAccountForm.accountList}" var="logoutList"> <tr height="55" class="table_centent_bj_co

asp.net 求助 ????????

问题描述 asp.net 求助 ???????? public static object Eval(object container, string expression) { if (expression == null) { throw new ArgumentNullException("expression"); } expression = expression.Trim(); if (expression.Length == 0) { throw new Argument

求助:调用包含并行计算的m文件编译成的动态链接库

问题描述 求助:调用包含并行计算的m文件编译成的动态链接库 请问如何在c++环境下调用包含并行计算(parfor)的MATLAB编译好的动态链接库(C++ shared library)?当m文件中不包含matlabpool open时,动态链接库是可以成功调用的,但是一旦m文件中包含matlabpool open,调用时会出现错误: "XXX exited with code -529697949" 求大神帮忙,如何调用含有并行计算的MATLAB动态链接库? 我的环境是:win7,Q