Производительность SQL-запросов /M$SQL/

Posted: 2011-07-14 in IT, Software
Метки:

Нашел шикарный цикл статей про сложные случаи отладки производительности запросов в M$SQL.
http://www.sql.ru/blogs/somewheresomehow/999
http://www.sql.ru/blogs/somewheresomehow/1000
http://www.sql.ru/blogs/somewheresomehow/1001

Когда я просматриваю различные форумы по SQL Server, я часто вижу вопросы от глубоко озадаченных пользователей. Они нашли медленный запрос или процедуру в своем приложении. Переместили этот пакет из своего приложения в SQL Server Management Studio (SSMS), чтобы проанализировать и обнаружили, что ответ от сервера приходит мгновенно.

Изначально в далеком дремучем прошлом, SQL Server включал в себя некоторые действия, которые нарушали стандарт ANSI для SQL. С выходом SQL Server 6.5 Microsoft представила все эти SET опции (кроме ARITHABORT, которая была уже в версии 4.x), чтобы дать возможность пользователям использовать SQL Server в ANSI совместимом режиме. В SQL 6.5, нужно было устанавливать эти опции явным образом, чтобы получить поведение соответствующее ANSI, но с версией SQL 7, Microsoft поменяла значения по-умолчанию для клиентов, которые использовали новые версии ODBC и OLE DB API. SET опции все еще остаются, для обеспечения обратной совместимости для старых клиентов.

По ссылкам много ахтунга, всем, кто пишет код или админит серверы под M$SQL — к прочтению обязательно.

- комментарии
  1. anonymous:

    ALEX writes:По моим субъективным ощущениям,после M$SQL 2000, программируя на pl/pgsql радовался несколько месяцев как идиот.В M$SQL почти ВСЁ сделано как календарик вендовый.Возможностей вроде бы много(реализовать можно всё), но работать с ними можно только через анальную жопу.

  2. Aminux:

    Ага, M$SQL 2000 вы в тему вспомнили. Это в нем как раз была такая служба, как SQL Mail. Писк даже не в том, что ей для работы нужно настраивать локальный профиль Outlook-а. Писк в том, что это говно не смогли настроить даже в сертифицированном учебном центре Микрософта не менее сертифицированные преподы. Точнее, оно обработало ровно два запроса. После чего работать перестало. Совсем и намертво.