【发布时间】:2010-10-01 09:14:48
【问题描述】:
有人告诉我,我不确定我是否相信这一点:在我提交之前从我在 sql server 2005 中的存储过程中删除空格,这将使它们运行得更快并提高性能。我想知道其他人是怎么想的?
谢谢,
斯科特
【问题讨论】:
标签: sql-server-2005 performance
有人告诉我,我不确定我是否相信这一点:在我提交之前从我在 sql server 2005 中的存储过程中删除空格,这将使它们运行得更快并提高性能。我想知道其他人是怎么想的?
谢谢,
斯科特
【问题讨论】:
标签: sql-server-2005 performance
我看不出会是这样。也许存储过程会编译得稍微快一些,但在那之后它应该没有任何区别。
更重要的是,即使这是真的,我无法想象花费在删除空格上的时间会值得您获得任何性能优势。
【讨论】:
如果不对其进行基准测试,我无法“知道”,但这听起来很牛。
首先,我很确定 SQLServer 会编译存储过程(也就是说,冗长的内容绝对不会影响它)。其次,在任何系统中,解析空格都是非常耗时的。
【讨论】:
我称之为恶作剧。这甚至没有通过气味测试。 sprocs 被编译,SQL Server 使用的是从您的 sproc 创建的计划 - 空白是无关紧要的。
【讨论】:
是和不是。事实证明,您可以有两个查询,除了空白之外相同,它们在 SQL Server 上以不同的速度运行。如果我没有亲眼看到它,我不会相信这一点,但是这确实出现在我的工作中(在 sql server 2008 上),经过大量测试、拉扯头发和否认,我不得不承认它正在发生。以下是另一个人遇到相同问题的示例:
Space in SQL Server 2008 R2 slows down performance
现在回答“否”部分。我们有很多带有很多空白的查询,而这正是我所知道的一次。这根本不是加速查询的标准方法,只是碰巧有一个非常奇怪的边缘情况。我不会花任何时间从存储过程中删除空白,它几乎永远不会有帮助。差不多了。
【讨论】: