Мне сказали, и я не уверен, что верю этому: удаление пробелов из моих хранимых процедур в sql server 2005, прежде чем я отправлю их, заставит их работать быстрее и повысит производительность. Мне интересно, что думают все остальные?
Спасибо,
Скотт
Мне сказали, и я не уверен, что верю этому: удаление пробелов из моих хранимых процедур в sql server 2005, прежде чем я отправлю их, заставит их работать быстрее и повысит производительность. Мне интересно, что думают все остальные?
Спасибо,
Скотт
Без бенчмаркинга я не могу «знать», но это звучит как бред.
Во-первых, я почти уверен, что SQLServer компилирует хранимые процедуры (это означает, что на это абсолютно ничего не влияет). Во-вторых, синтаксический анализ пробелов в любой системе не требует много времени.
Я не понимаю, как это может быть. Возможно, хранимая процедура будет компилироваться немного быстрее, но после этого это не должно иметь никакого значения.
Что еще более важно, даже если бы это было правдой, я не могу себе представить, что время, потраченное на удаление пробелов, стоило бы любого выигрыша в производительности, который вы получили бы.
Я называю махинациями. Это даже не проходит тест на запах. sprocs компилируются, то, с чем работает SQL Server, — это план, созданный из вашего sproc — пробел не имеет значения.
И да и нет. Оказывается, у вас может быть два запроса, идентичных за исключением пробелов, которые выполняются с разной скоростью на SQL Server. Я бы не поверил, если бы не видел своими глазами, однако это случилось со мной на работе (на sql server 2008), и после долгих испытаний, выдергивания волос и отрицания мне пришлось признать, что это происходит. Вот пример другого человека, столкнувшегося с той же проблемой:
Пространство в SQL Server 2008 R2 снижает производительность
Теперь о «нет» части ответа. У нас есть много запросов с большим количеством пробелов, и это произошло ровно один раз, насколько мне известно. Это совсем не стандартный способ ускорить запросы, просто случается очень странный пограничный случай. Я бы не стал тратить время на удаление пробелов из хранимых процедур, это почти никогда не поможет. Почти.