改善以下存储过程的执行时间 [英] improve execution time of the following stored procedure

查看:73
本文介绍了改善以下存储过程的执行时间的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

CREATE PROCEDURE [dbo].[SP_RPT_DefectList]         
 (        
         @WhereClause NVARCHAR(2000) = NULL        
 )        
 AS        
 BEGIN        
         DECLARE @SelectStatement NVARCHAR(2000)        
         DECLARE @FullStatement NVARCHAR(4000)             
        
         SET @SelectStatement = ''SELECT  DefectListId,
										  CONVERT(Varchar(12),DateOfEntry,101)DateOfEntry,
										  U.UserName as EnteredBy,
										  dbo.getDefectlistfromName(RefBy) RefBy,
										  dbo.GuiId(EquipmentGuid)EquipmentGuid,
										  DefectDescription,
										  SparesStoresRequiredRef,
										  ShoreAssistanceRequired,
										  DockingRequired,
										  Remarks,
										  Status,
										  CONVERT(Varchar(12),TargetDate,101)TargetDate 
										  FROM dbo.PMS_TBL_DEFECT_LIST D 
										  left outer join dbo.PMS_TBL_USERS U 
										  on U.UserId=D.EnteredBy 
										  LEFT OUTER JOIN dbo.PMS_TBL_SUB_EQUIPMENT_MASTER S 
										  ON S.UniqueId=D.EquipmentGuid
										  LEFT OUTER JOIN dbo.PMS_TBL_EQUIPMENT_MASTER E 
										  ON E.UniqueId=D.EquipmentGuid  OR E.EquipmentId=S.EquipmentId
										  LEFT OUTER JOIN dbo.PMS_TBL_SUB_FUNCTIONAL_BLOCK_MASTER SF 
										  ON SF.UniqueId=D.EquipmentGuid 
										  Or SF.SubFunctionalBlockId=E.SFBId
										  LEFT OUTER JOIN dbo.PMS_TBL_FUNCTIONAL_BLOCK_MASTER F 
										  ON F.FunctionalBlockId=SF.FBId  ''        
         SET @FullStatement = @SelectStatement + ISNULL(@WhereClause,'''')             
        
         PRINT @FullStatement        
         EXECUTE sp_executesql @FullStatement             
 END







任何人都建议我改进上述存储过程的执行时间.....




Can any one suggest me to improve the execution time of the above stored procedure.....

推荐答案

首先确保你有适当的索引在表格上 - 见上一篇文章以下是我的存储过程可以任何人建议我改进执行时间 [ ^ </a>] <br /> <br/> <br /> <br/>下一步 - 你为什么要在日期进行转换<br /> <br/> <em class="showen"></em></blockquote> <blockquote class="en">Firstly make sure you have appropriate indexes on the tables - see your previous post the following is my stored procedure can any one suggest me the improvement of execution time[^]<br /> <br /> Next - why are you doing the conversions on dates<br /> </blockquote> <pre><code>CONVERT(Varchar(12),DateOfEntry,101)DateOfEntry ... CONVERT(Varchar(12),TargetDate,101)TargetDate</code></pre> <p class="cn">不要在数据检索中进行转换 - 只在演示文稿中进行转换呃。 <br /> <br/> <br /> <br/>您加入了很多表并在ON子句中使用OR - 有什么办法可以减少输入这些表的记录数量加入 - 例如使用CTE获取带有WHERE子句的关键记录,然后加入以获取其他信息。<br /> <br/> <br /> <br/>您还调用两个函数<em class="showen"></em></p> <p class="en">Don't do the conversion in the data retrieval - only do that in the presentation layer. <br /> <br /> You're joining across a lot of tables and using OR in the ON clauses - is there any way you can reduce the number of records that are being fed into these joins - e.g. use a CTE to get the key records with the WHERE clause then join to get the additional information.<br /> <br /> You're also calling two functions</p> <pre><code>dbo.getDefectlistfromName(RefBy) RefBy, dbo.GuiId(EquipmentGuid)EquipmentGuid,</code></pre> <p class="cn">它们是否有效(您还没有共享该代码)?他们是否真的需要在那里或者可以在结果出现之前立即使用<em class="showen"></em></p> <p class="en">Are they efficient (you haven't shared that code)? Do they actually need to be there or can they be used immediately prior to presentation of the results</p> <p class="cn"> <br/> </p> <p>这篇关于改善以下存储过程的执行时间的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!</p> </div> <div class="arc-body-main-more"> <span onclick="unlockarc('1142445');">查看全文</span> </div> </div> <div> </div> <div class="wwads-cn wwads-horizontal" data-id="166" style="max-width:100%;border: 4px solid #666;"></div> </div> </article> <div id="arc-ad-2" class="mb-1"> <script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-5038752844014834" crossorigin="anonymous"></script> <ins class="adsbygoogle" style="display:block" data-ad-format="autorelaxed" data-ad-client="ca-pub-5038752844014834" data-ad-slot="3921941283"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script> </div> <div class="widget bgwhite radius-1 mb-1 shadow widget-rel"> <h5>相关文章</h5> <ul> <li> <a target="_blank" title="存储过程执行时间过长。" href="/1330051.html"> 存储过程执行时间过长。; </a> </li> <li> <a target="_blank" title="存储过程执行时间增加50%" href="/1181403.html"> 存储过程执行时间增加50%; </a> </li> <li> <a target="_blank" title="如何改善该功能的执行时间?" href="/245505.html"> 如何改善该功能的执行时间?; </a> </li> <li> <a target="_blank" title="依次解释以下存储过程...." href="/1388473.html"> 依次解释以下存储过程....; </a> </li> <li> <a target="_blank" title="pl/sql存储过程...执行时间在哪里?" href="/1715751.html"> pl/sql存储过程...执行时间在哪里?; </a> </li> <li> <a target="_blank" title="存储过程执行时间过长时的 SQL 警报" href="/2777470.html"> 存储过程执行时间过长时的 SQL 警报; </a> </li> <li> <a target="_blank" title="实体框架-存储过程的执行时间极长" href="/2065062.html"> 实体框架-存储过程的执行时间极长; </a> </li> <li> <a target="_blank" title="计算存储的执行时间" href="/1412009.html"> 计算存储的执行时间; </a> </li> <li> <a target="_blank" title="存储过程执行时间过长时出现SQL警报" href="/1639894.html"> 存储过程执行时间过长时出现SQL警报; </a> </li> <li> <a target="_blank" title="我希望减少我的存储过程的执行时间。" href="/1251521.html"> 我希望减少我的存储过程的执行时间。; </a> </li> <li> <a target="_blank" title="以下是我的存储过程可以任何一个建议我改进执行时间" href="/1142575.html"> 以下是我的存储过程可以任何一个建议我改进执行时间; </a> </li> <li> <a target="_blank" title="执行时间具有相同的存储过程的每个迭代较慢" href="/26739.html"> 执行时间具有相同的存储过程的每个迭代较慢; </a> </li> <li> <a target="_blank" title="以下查询执行时间过长.如何优化它" href="/2308651.html"> 以下查询执行时间过长.如何优化它; </a> </li> <li> <a target="_blank" title="如何在sql中使用游标减少存储过程的执行时间" href="/1144218.html"> 如何在sql中使用游标减少存储过程的执行时间; </a> </li> <li> <a target="_blank" title="找到执行时间" href="/1031082.html"> 找到执行时间; </a> </li> <li> <a target="_blank" title="平均执行时间" href="/324725.html"> 平均执行时间; </a> </li> <li> <a target="_blank" title="查询执行时间" href="/1442534.html"> 查询执行时间; </a> </li> <li> <a target="_blank" title="执行时间计算" href="/1782278.html"> 执行时间计算; </a> </li> <li> <a target="_blank" title="函数执行时间" href="/459765.html"> 函数执行时间; </a> </li> <li> <a target="_blank" title="php执行时间" href="/1045715.html"> php执行时间; </a> </li> <li> <a target="_blank" title="计算执行时间" href="/1032130.html"> 计算执行时间; </a> </li> <li> <a target="_blank" title="Tensorflow 执行时间" href="/2357481.html"> Tensorflow 执行时间; </a> </li> <li> <a target="_blank" title="mysql执行时间" href="/1661345.html"> mysql执行时间; </a> </li> <li> <a target="_blank" title="程序执行时间" href="/1441005.html"> 程序执行时间; </a> </li> <li> <a target="_blank" title="无法检测到以下存储过程的返回类型" href="/1557881.html"> 无法检测到以下存储过程的返回类型; </a> </li> </ul> </div> <div class="mb-1"> <script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-5038752844014834" crossorigin="anonymous"></script> <ins class="adsbygoogle" style="display:block" data-ad-format="autorelaxed" data-ad-client="ca-pub-5038752844014834" data-ad-slot="3921941283"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script> </div> </div> <div class="side"> <div class="widget widget-side bgwhite mb-1 shadow"> <h5>其他开发语言最新文章</h5> <ul> <li> <a target="_blank" title="成功安排的软件保护服务,以便重新启动:原因:RulesEngine。" href="/1218923.html"> 成功安排的软件保护服务,以便重新启动:原因:RulesEngine。; </a> </li> <li> <a target="_blank" title="如何解决“我们很抱歉......”但您的计算机或网络可能正在发送自动查询。为了保护我们的用户,我们目前无法处理您的请求。“" href="/1094282.html"> 如何解决“我们很抱歉......”但您的计算机或网络可能正在发送自动查询。为了保护我们的用户,我们目前无法处理您的请求。“; </a> </li> <li> <a target="_blank" title="golang无效操作:type interface {}不支持索引" href="/809967.html"> golang无效操作:type interface {}不支持索引; </a> </li> <li> <a target="_blank" title="如何在Visual Studio 2019中创建EXE文件" href="/1220354.html"> 如何在Visual Studio 2019中创建EXE文件; </a> </li> <li> <a target="_blank" title="关于“Add-AppxPackage”的问题powershell命令" href="/1287760.html"> 关于“Add-AppxPackage”的问题powershell命令; </a> </li> <li> <a target="_blank" title="Windows x64 RabbitMQ安装错误与Erlang环境var(ERLANG_HOME)" href="/687938.html"> Windows x64 RabbitMQ安装错误与Erlang环境var(ERLANG_HOME); </a> </li> <li> <a target="_blank" title="CMAKE_C_COMPILER不是现有编译器工具的完整路径" href="/782789.html"> CMAKE_C_COMPILER不是现有编译器工具的完整路径; </a> </li> <li> <a target="_blank" title="在Go中将float64转换为int" href="/808359.html"> 在Go中将float64转换为int; </a> </li> <li> <a target="_blank" title="显示设置 - 屏幕分辨率 - 无法从远程会话更改" href="/1226298.html"> 显示设置 - 屏幕分辨率 - 无法从远程会话更改; </a> </li> <li> <a target="_blank" title="使用Twitter登录时出错" href="/1411071.html"> 使用Twitter登录时出错; </a> </li> </ul> </div> <div class="widget widget-side bgwhite mb-1 shadow"> <h5> 热门教程 </h5> <ul> <li> <a target="_blank" title="Java教程" href="/OnLineTutorial/java/index.html"> Java教程 </a> </li> <li> <a target="_blank" title="Apache ANT 教程" href="/OnLineTutorial/ant/index.html"> Apache ANT 教程 </a> </li> <li> <a target="_blank" title="Kali Linux教程" href="/OnLineTutorial/kali_linux/index.html"> Kali Linux教程 </a> </li> <li> <a target="_blank" title="JavaScript教程" href="/OnLineTutorial/javascript/index.html"> JavaScript教程 </a> </li> <li> <a target="_blank" title="JavaFx教程" href="/OnLineTutorial/javafx/index.html"> JavaFx教程 </a> </li> <li> <a target="_blank" title="MFC 教程" href="/OnLineTutorial/mfc/index.html"> MFC 教程 </a> </li> <li> <a target="_blank" title="Apache HTTP客户端教程" href="/OnLineTutorial/apache_httpclient/index.html"> Apache HTTP客户端教程 </a> </li> <li> <a target="_blank" title="Microsoft Visio 教程" href="/OnLineTutorial/microsoft_visio/index.html"> Microsoft Visio 教程 </a> </li> </ul> </div> <div class="widget widget-side bgwhite mb-1 shadow"> <h5> 热门工具 </h5> <ul> <li> <a target="_blank" title="Java 在线工具" href="/Onlinetools/details/4"> Java 在线工具 </a> </li> <li> <a target="_blank" title="C(GCC) 在线工具" href="/Onlinetools/details/6"> C(GCC) 在线工具 </a> </li> <li> <a target="_blank" title="PHP 在线工具" href="/Onlinetools/details/8"> PHP 在线工具 </a> </li> <li> <a target="_blank" title="C# 在线工具" href="/Onlinetools/details/1"> C# 在线工具 </a> </li> <li> <a target="_blank" title="Python 在线工具" href="/Onlinetools/details/5"> Python 在线工具 </a> </li> <li> <a target="_blank" title="MySQL 在线工具" href="/Onlinetools/Dbdetails/33"> MySQL 在线工具 </a> </li> <li> <a target="_blank" title="VB.NET 在线工具" href="/Onlinetools/details/2"> VB.NET 在线工具 </a> </li> <li> <a target="_blank" title="Lua 在线工具" href="/Onlinetools/details/14"> Lua 在线工具 </a> </li> <li> <a target="_blank" title="Oracle 在线工具" href="/Onlinetools/Dbdetails/35"> Oracle 在线工具 </a> </li> <li> <a target="_blank" title="C++(GCC) 在线工具" href="/Onlinetools/details/7"> C++(GCC) 在线工具 </a> </li> <li> <a target="_blank" title="Go 在线工具" href="/Onlinetools/details/20"> Go 在线工具 </a> </li> <li> <a target="_blank" title="Fortran 在线工具" href="/Onlinetools/details/45"> Fortran 在线工具 </a> </li> </ul> </div> </div> </div> <script type="text/javascript">var eskeys = '改善,以下,存储,过程,的,执行时间'; var cat = 'cc';';//%e5%85%b6%e4%bb%96%e5%bc%80%e5%8f%91%e8%af%ad%e8%a8%80</script> </div> <div id="pop" onclick="pophide();"> <div id="pop_body" onclick="event.stopPropagation();"> <h6 class="flex flex101"> 登录 <span onclick="pophide();">关闭</span> </h6> <div class="pd-1"> <div class="wxtip center"> <span>扫码关注<em>1秒</em>登录</span> </div> <div class="center"> <img id="qr" src="https://huajiakeji.com/Content/Images/qrydx.jpg" alt="" style="width:150px;height:150px;" /> </div> <div style="margin-top:10px;display:flex;justify-content: center;"> <input type="text" placeholder="输入验证码" id="txtcode" autocomplete="off" /> <input id="btngo" type="button" onclick="chk()" value="GO" /> </div> <div class="center" style="margin: 4px; font-size: .8rem; color: #f60;"> 发送“验证码”获取 <em style="padding: 0 .5rem;">|</em> <span style="color: #01a05c;">15天全站免登陆</span> </div> <div id="chkinfo" class="tip"></div> </div> </div> </div> <script type="text/javascript" src="https://lib.sinaapp.com/js/jquery/1.9.1/jquery-1.9.1.min.js"></script> <script type="text/javascript" src="https://cdn.bootcss.com/jquery-cookie/1.4.1/jquery.cookie.min.js"></script> <script type="text/javascript" src="https://img01.yuandaxia.cn/Scripts/highlight.min.js"></script> <script type="text/javascript" src="https://img01.yuandaxia.cn/Scripts/base.js?v=0.22"></script> <script type="text/javascript" src="https://img01.yuandaxia.cn/Scripts/tui.js?v=0.11"></script> <footer class="footer"> <div class="container"> <div class="flink mb-1"> 友情链接: <a href="https://www.it1352.com/" target="_blank">IT屋</a> <a href="https://huajiakeji.com/" target="_blank">Chrome插件</a> <a href="https://www.cnplugins.com/" target="_blank">谷歌浏览器插件</a> </div> <section class="copyright-section"> <a href="https://www.it1352.com" title="IT屋-程序员软件开发技术分享社区">IT屋</a> ©2016-2022 <a href="http://www.beian.miit.gov.cn/" target="_blank">琼ICP备2021000895号-1</a> <a href="/sitemap.html" target="_blank" title="站点地图">站点地图</a> <a href="/Home/Tags" target="_blank" title="站点标签">站点标签</a> <a target="_blank" alt="sitemap" href="/sitemap.xml">SiteMap</a> <a href="/1155981.html" title="IT屋-免责申明"><免责申明></a> 本站内容来源互联网,如果侵犯您的权益请联系我们删除. </section> <!--统计代码--> <script type="text/javascript"> var _hmt = _hmt || []; (function() { var hm = document.createElement("script"); hm.src = "https://hm.baidu.com/hm.js?0c3a090f7b3c4ad458ac1296cb5cc779"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hm, s); })(); </script> <script type="text/javascript"> (function () { var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </div> </footer> </body> </html>