SQL Server

  • ХабрахабрФото [Перевод] Три способа отладки T-SQL кода

    [Перевод] Три способа отладки T-SQL кода

    Написание нового кода = ошибки. С этим всё просто. Избавится от ошибок – вот это сложная задача. Программисты привыкли, что в их средствах разработки есть встроенные инструменты, показывающие, какая строка кода сейчас работает, отображают текущее содержимое переменных, выводят сообщения о процессе выполнения и тд. Какое-то время в SQL Server Management Studio тоже был отладчик кода, но, начиная с версии SSMS…

    Читать далее »
  • ХабрахабрФото Не удаляйте временные таблицы, умоляю

    Не удаляйте временные таблицы, умоляю

    Мне часто приходится видеть чужой код на T-SQL. Я уже привык видеть в конце процедур привычное drop table #adrop table #b Таблица сама себя не удалит, видимо думает автор. Ну или это делает "на всякий случай". Вдруг SQL server забудет ее удалить? Впрочем, эти удаления не столь страшны, так как SQL server их оптимизирует (не делает перекомпиляции, о чем мы…

    Читать далее »
  • ХабрахабрФото [Перевод] Оператор PIVOT

    [Перевод] Оператор PIVOT

    По материалам статьи Craig Freedman: The PIVOT Operator Несколько статей будут посвящены тому как в SQL Server реализован оператор PIVOT и UNPIVOT. Начнем с оператора PIVOT. Оператор PIVOT берет нормализованную таблицу и преобразует ее в другой вид, в котором столбцы результирующей таблицы получаются из значений исходной таблицы. Например, предположим, что мы хотим хранить данные о суммарной выручке от продаж за год…

    Читать далее »
  • ХабрахабрФото Эффективная генерация сортируемых GUID для первичных ключей БД на клиенте

    Эффективная генерация сортируемых GUID для первичных ключей БД на клиенте

    Использовать Guid. NewGuid() в качестве первичного ключа в базе данных — плохая с точки зрения производительности идея. Это связано с тем, что в SQL Server, MySQL и некоторых других БД для первичных ключей создаются кластерные индексы, которые определяют, как строки будут храниться на диске. GUID — это по сути случайное значение, поэтому новая строка может попасть в начало, середину или…

    Читать далее »
  • ХабрахабрФото [Перевод] Serializable vs. Snapshot Isolation Level

    [Перевод] Serializable vs. Snapshot Isolation Level

    По материалам статьи Craig Freedman: Serializable vs. Snapshot Isolation Level Уровни изоляции транзакций Serializable и Snapshot обеспечивают согласованное чтение из базы данных. На любом из этих уровней изоляции транзакция может читать только зафиксированные данные. Более того, транзакция может читать одни и те же данные несколько раз, не заботясь о каких-либо параллельных транзакциях, вносящих изменения в эти же данные. Те нежелательные эффекты,…

    Читать далее »
  • ХабрахабрФото Анонс стрима 07.04.22: Сжать данные в SQL Server в десятки раз, а ускорить запросы в сотни

    Анонс стрима 07.04.22: Сжать данные в SQL Server в десятки раз, а ускорить запросы в сотни

    У меня в планах на этот год на Хабре было опубликовать пару статей по колумсторам и XML. Материала за годы накопилось предостаточно и выходило на 30.. 40 страниц текста - фактически мини-книга. Но когда за окном Градами и прочей дичью херячили месяц... оно как-то не складывалось настроиться на конструктив. Вначале агрессия на виновников этой дичи, потом паника за близких... печаль…

    Читать далее »
  • ХабрахабрФото [Перевод] Hash Join

    [Перевод] Hash Join

    По материалам статьи Craig Freedman: Hash Join Когда Вы встречаете случай использования оператора Hash Join (хэш-соединение), это говорит о наличии тяжелого запроса. В отличие то соединения Nested Loops Join, которое хорошо для относительно маленьких наборов данных, и от соединения Merge Join, которое помогает при умеренных размерах наборов данных, хэш-соединение превосходит другие типы соединений при необходимости соединения огромных наборов данных. Хэш-соединения распараллеливается…

    Читать далее »
  • ХабрахабрФото [Перевод] Как справиться с PAGELATCH при высоко-параллельных INSERT-нагрузках

    [Перевод] Как справиться с PAGELATCH при высоко-параллельных INSERT-нагрузках

    По материалам статьи: «Resolving PAGELATCH Contention on Highly Concurrent INSERT Workloads». Авторы: Thomas Kejser, Lindsey Allen, Arvind Rao и Michael Thomassy При участии и с рецензиями: Mike Ruthruff, Lubor Kollar, Prem Mehra, Burzin Patel, Michael Thomassy, Mark Souza, Sanjay Mishra, Peter Scharlock, Stuart Ozer, Kun Cheng и Howard Yin Введение Недавно, мы проводили лабораторные испытания в Microsoft Enterprise Engineering Center,…

    Читать далее »
  • ХабрахабрФото [Перевод] Вариант стратегии быстрого и надежного резервного копирования/восстановления VLDB по сети

    [Перевод] Вариант стратегии быстрого и надежного резервного копирования/восстановления VLDB по сети

    По материалам технической статьи Майкрософт: A Case Study: Fast and Reliable Backup and Restore of a VLDB over the Network Статья была опубликована рание на SQL. RU Публикуется повторно ввиду недоступности сайта. Автор: Томас Грохсер (Thomas H. Grohser) При содействии: Линдсей Аллен (Lindsey Allen) Техническая экспертиза статьи: Sanjay Mishra, Lubor Kollar, Stuart Ozer, Thomas Kejser, Juergen Thomas, James Podgorski, Burzin Patel Перевод: Александр Гладченко,  Ирина…

    Читать далее »
  • ХабрахабрФото [Перевод] Стратегия управления глубиной очереди ввода-вывода для достижения пиковой производительности

    [Перевод] Стратегия управления глубиной очереди ввода-вывода для достижения пиковой производительности

    По материалам статьи Джо Чанг (Joe Chang): I/O Queue Depth Strategy for Peak Performance (IO Queue Depth Strategy) Статья была опубликована рание на SQL. RU Публикуется повторно ввиду недоступности сайта. В большинстве случаев для SQL Server применяются незамысловатые модели управления глубиной очередей ввода-вывода. Ниже представлены основанные на практике рекомендации по оптимизации очереди ввода-вывода, при использовании более развитых моделей дисковых подсистем, SSD -…

    Читать далее »


Кнопка «Наверх»