Оптимизация запросов


4 0

Сори, но некогда писать. Второй день занимаюсь жестокой оптимизацией запросов. Один SELECT запрос выполняется очень часто и из-за пидxxxxxxеского SQL Server приводит к deadlock. Впервые вижу, чтобы SELECT запрос приводит к мертвой блокировке. Я все видел, но чтобы доводить до смерти. Это же банальное чтение данных, какого черта взаимноблокировать чтение.

Только что нашел проблему. Простая перестановка последовательности WHEN в CASE операторе уронила количество сканирований таблицы с 205000 до 18.


Понравилось? Кликни Лайк, чтобы я знал, какой контент более интересен читателям. Заметку пока еще никто не лайкал и ты можешь быть первым


Комментарии

Fish

03 Декабря 2010

А можно полный текст запроса, а то не совсем понятно?..


Михаил Фленов

03 Декабря 2010

Без знания структуры базы данных понять запрос размером в три листа A4 будет проблематично. Так что одного запроса в студию будет не достаточно


Сергей

04 Декабря 2010

Да, интересно было бы понять что же именно тормозило запрос к базе. Думаю любая сложнося может быть объяснена простыми словами, понятными даже непрограммисту.
Хотя наверно в эту знаменательную субботу не стоит забивать себе и посетителям голову на тему работы...


Михаил Фленов

04 Декабря 2010

Тормозили deadlock-и. Просто запрос очень много выполнял сканов на таблицы,и выполнялся очень часто. Это сайт с миллионами пользователей и поэтому дедлоки возникают, а на частом запросе возникают часто. Оптимизировали количество сканов и вроде бы дедлоки ушли. Вчера не было.


Добавить Комментарий

Еще что-нибудь

Хотите найти еще что-то интересное почитать? Можно попробовать отфильтровать заметки на блоге по категориям.

О блоге

Программист, автор нескольких книг серии глазами хакера и просто блогер. Интересуюсь безопасностью, хотя хакером себя не считаю

Обратная связь

Без проблем вступаю в неразборчивые разговоры по e-mail. Стараюсь отвечать на письма всех читателей вне зависимости от страны проживания, вероисповедания, на русском или английском языке.

Пишите мне