Я тут пообещал поделиться опытом оптимизации SQL запросов. Мне достаточно много приходилось работать над оптимизацией и на работе не раз просили рассказать, как я оптимизирую запросы. Тут нет какого-то секрета и, хотя я пытался поделиться, это все же такой процесс, в котором мастерство приходит с опытом.
В прошлом видео я показал, как работают индексы, как они влияют на статистику выполнения запросов, и мы на примерах увидели план выполнения SQL.
Сегодня мы более подробно познакомимся с инструментами, которые позволят вам найти проблемы в запросах, и как искать сами проблемные запросы.
Продолжим знакомится с производительностью базы данных MS SQL Server и как ее улучшить и сегодня я решил рассказать про две примерно смежные темы - фрагментация индексов и статистика. Обе темы объединяют как раз индексы и они влияют на их производительность, поэтому я решил рассмотреть их одновременно.
При удалении записей в базе данных они только помечаются, как удаленные, а место реально не освобождается. Это позволяет значительно увеличить скорость удаления, но при массовой чистке данных это может быть не совсем то, что вам нужно.
Самый простой способ сохранять данные в большой массив – добавлять их в самый конец данных. Рассмотрим телефонный справочник. Мне как-то говорили в комментариях, что на телефонном справочнике проще воспринимается информация, потому что эта проблема понятна всем.
Лет 8 назад у нас на работе один из программистов провел презентацию, которая называлась Empty Inbox, во время которой он рассказывал, как управляет своими E-Mail сообщениями и какой придерживается политики. А политика у него простая – в папке входящих не должно быть никаких сообщений.