当前位置: 首页 > 面试题库 >

SQL存储过程中注释的性能含义

楚俊逸
2023-03-14
问题内容

最近在我的日常工作中被指示,关于存储过程的任何注释都必须不存在于存储过程中,而必须使用扩展属性。

过去我们使用过类似的方法。

/*
 * NOTE: Auto-Generated Procedure DO NOT MODIFY
 */
CREATE PROCEDURE dbo.MyProc
AS
SELECT *
FROM MyTable
GO

这样,只要有人在SSMS中打开该过程,他们就会看到该注释,而在过程中还存在其他注释,以记录我们的过程。现在我不知道与此有关的任何性能/内存问题。但是,我们有些人坚持要这样做。

我无法找到任何文档来证明或否认此类注释存在性能和/或内存问题。

所以我的问题是,有人知道任何可以证明或否认这一点的文档吗?


问题答案:

这只会稍微减慢存储过程的编译速度,而且无论如何都不会经常发生这种情况。

基本上,这听起来像是恐慌。考虑到评论的有用性(适度),我将要求 证据 证明评论会损害性能。对我来说,这听起来像是一个荒谬的政策。

(任何时候有人声称对性能有要求的证据都是一个很好的一般规则, 特别是 如果他们建议您为了提高性能而牺牲可读性或其他一些积极的属性时。)



 类似资料:
  • 我正在尝试调用MSSQL服务器存储过程。我使用spring-boot, JPA 2.1, hibernate。 数据库有一个表,其中包含 isbn、标题、作者、描述,我尝试调用的存储过程将一个 in parameter(isbn) 作为字符串,并仅返回标题。 我得到以下错误: 有人知道这个问题的解决方案或者知道这个错误意味着什么吗?我也尝试过其他的注释组合。 Book.java BookRepos

  • 问题内容: 我有以下问题:从我的应用程序一次调用存储的proc时,有时(例如1000次调用中有1次),需要10到30秒才能完成。通常,存储过程在不到一秒钟的时间内运行。这是一个非常简单的proc,只需单击一次即可将几个表联系在一起。所有表名都设置有(NOLOCK)提示,因此它可能没有锁定。索引也就位,否则它会一直很慢。 问题是,无论它运行sproc多少次,我都无法在SSMS中复制此问题(因为它始终

  • 问题内容: 我学习函数和存储过程已经有一段时间了,但是我不知道为什么以及何时应该使用函数或存储过程。在我看来,它们看起来一样,也许是因为我对此有些新手。 有人可以告诉我为什么吗? 问题答案: 函数是计算值,不能对它们进行永久性的环境更改(即,不执行任何更改或允许进行声明)。 如果函数返回标量值,则可以在语句中内联使用;如果返回结果集,则可以在函数中加入函数。 注释中值得指出的一点,这些注释总结了答

  • 主要内容:示例Transact SQL 中的存储过程用于一次又一次地节省编写代码的时间。它通过将过程存储在数据库中并通过传递参数来获得所需的输出来实现这一点。 语法: 下面是存储过程创建的语法 - 参数可选:当我们创建一个过程时,一个或多个参数被传递到过程中。存储过程中有3种类型的参数: IN - 过程可以引用参数。该过程将覆盖参数的值。 OUT- 过程不能引用参数,但过程会覆盖参数值。 IN OUT- 参数被

  • SQL Server存储过程将一个或多个Transact-SQL语句分组到逻辑单元中,并作为对象存储在数据库服务器中。 当第一次调用存储过程时,SQL Server会创建执行计划并将其存储在计划缓存中。 在之后的存储过程执行中,SQL Server重用该程序,以便存储过程可以非常快速地执行并具有可靠的性能。 本系列教程将介绍存储过程,并演示如何开发灵活的存储过程以优化数据库访问。 第1节. SQL

  • 主要内容:PL/SQL子程序的部分,创建存储过程,执行独立程序,删除独立存储过程,PL/SQL子程序中的参数模式,传递参数的方法在本章中,我们将讨论PL/SQL中的存储过程。 子程序是执行特定任务的程序单元/模块。 这些子程序组合起来形成更大的程序。这种做法被称为“模块化设计”。 子程序可以被称为调用程序的另一个子程序或程序调用。 可以在以下几个地方中创建一个子程序 - 在模式(schema)级别中 一个程序包中 在PL/SQL块中 在模式(schema)级别中,子程序是一个独立的子程序。它是使