我确实在sp上使用的表上创建了两个新索引。新结果表明,在有问题的连接部分,扫描被转换为寻找。我认为搜索比扫描操作更好。另一方面,该时间与没有新索引时所花费的时间大致相同。
很明显,在将新版本sp投入生产之前,我如何才能感到满意。
例如,更改sp的参数可以帮助我查看新版本是否比旧版本快,或者还有什么?
问候bk
需要做的几件事:
1)通过在每次测试运行后清除数据和执行计划缓存,确保您公平地比较性能。您可以使用清除这些内容(建议仅在开发/测试环境中执行此操作):
CHECKPOINT -- force dirty pages in the buffer to be written to disk
DBCC DROPCLEANBUFFERS -- clear the data cache
DBCC FREEPROCCACHE -- clear the execution plan cache
2)运行SQL事件探查器以记录每种情况下的读/写/ CPU
/持续时间(有/没有索引)。这将为您提供一系列可供比较的指标(即,与仅SSMS中显示的时间相对)。
编辑: 要运行SQL Profiler跟踪,请在Management Studio中转到“工具”->“ SQL Server
Profiler”。出现提示时,指定要对其运行跟踪的数据库服务器。将出现“跟踪属性”对话框-
您只需单击“运行”即可开始运行默认跟踪。然后只需执行您的存储过程,并在SQL Profiler中看到它-它会显示持续时间,读取次数等。
3)使用比您已有的数据量大得多的数据进行测试。如果使用少量数据进行测试,则通常仅凭持续时间很难发现差异。
我最近在这里写了一篇关于如何公平地测试查询的不同变体的性能的博客,其中详细介绍了如何执行此查询。
本文向大家介绍浅谈基于SQL Server分页存储过程五种方法及性能比较,包括了浅谈基于SQL Server分页存储过程五种方法及性能比较的使用技巧和注意事项,需要的朋友参考一下 在SQL Server数据库操作中,我们常常会用到存储过程对实现对查询的数据的分页处理,以方便浏览者的浏览。 创建数据库data_Test : 插入数据: 1、利用select top 和select not in进行分
问题内容: 什么是在Android上解析JSON的最佳库。我知道Android框架内置了JSON库,而且我听说过GSON。但是我想知道是否有人比较了android上的各种JSON选项,并提出了一个选择另一个的理由。我认为性能和可用性是主要标准。 问题答案: 尽管有少数Java-to / from-JSONAPI提供了JSON与任意Java数据结构之间的轻松(基本)绑定,但Jackson和Gson到
本文向大家介绍C#中Dynamic和Dictionary性能比较,包括了C#中Dynamic和Dictionary性能比较的使用技巧和注意事项,需要的朋友参考一下 开发中需要传递变参,考虑使用 dynamic 还是 Dictionary(准确地说是Dictionary<string,object>)。 dynamic 的编码体验显著优于 Dictionary,如果性能差距不大的话,我会选择使用dy
问题内容: 我有以下问题:从我的应用程序一次调用存储的proc时,有时(例如1000次调用中有1次),需要10到30秒才能完成。通常,存储过程在不到一秒钟的时间内运行。这是一个非常简单的proc,只需单击一次即可将几个表联系在一起。所有表名都设置有(NOLOCK)提示,因此它可能没有锁定。索引也就位,否则它会一直很慢。 问题是,无论它运行sproc多少次,我都无法在SSMS中复制此问题(因为它始终
问题内容: 我想知道List和Set之间在性能,内存分配和可用性方面的比较。 如果我不需要在对象列表中保持唯一性,也不需要维护插入顺序,是否可以互换使用ArrayList和SortedSet / HashSet?直接使用Collections类而不是列表/集合会好吗? PS我也不需要列表或设置java提供的特定功能。我之所以使用列表/集而不是数组,是因为它们可以动态增长,而无需额外的编程工作。 问
问题内容: 最近在我的日常工作中被指示,关于存储过程的任何注释都必须不存在于存储过程中,而必须使用扩展属性。 过去我们使用过类似的方法。 这样,只要有人在SSMS中打开该过程,他们就会看到该注释,而在过程中还存在其他注释,以记录我们的过程。现在我不知道与此有关的任何性能/内存问题。但是,我们有些人坚持要这样做。 我无法找到任何文档来证明或否认此类注释存在性能和/或内存问题。 所以我的问题是,有人知