Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2 3 4   вперед  Ctrl      все
 Что есть "умение оптимизировать запросы"  [new]
defragmentator
Member

Откуда:
Сообщений: 20504
Часто работодатели требуют "знание и умение применения методов оптимизации SQL-запросов, хранимых процедур и функций".
Причём, что они имеют в виду, пояснить не могут.
Я лично под этим понимаю умение грамотно построить систему.
Может, ещё что нужно?
21 май 12, 13:36    [12588158]     Ответить | Цитировать Сообщить модератору
 Re: Что есть "умение оптимизировать запросы"  [new]
SamMan
Member

Откуда: Moscow
Сообщений: 759
defragmentator
Причём, что они имеют в виду, пояснить не могут.


Так тогда - в чем вопрос?

defragmentator
Может, ещё что нужно?


Да куча всего может быть нужно. Но что нужно от вас определяется тем, что нужно им. Что в свою очередь определяется четко поставленной задачей, а не набором технически корректных терминов. Если нет ответа на вопрос "что, по вашему, есть _оптимальный_ запрос" - говорить решительно не о чем.
21 май 12, 13:50    [12588273]     Ответить | Цитировать Сообщить модератору
 Re: Что есть "умение оптимизировать запросы"  [new]
RubinDm
Member

Откуда:
Сообщений: 461
Это если Вы сами пишите запрос с нуля. Зачастую от Вас хотят навыков быстрого понимания и устранения тормозов в уже существующих запросах, с применением всех необходимых и доступных на момент исправления инструментов - профайлеров, анализаторов планов исполнения, изучения статистики и тд и тп.
21 май 12, 13:54    [12588316]     Ответить | Цитировать Сообщить модератору
 Re: Что есть "умение оптимизировать запросы"  [new]
Stan2000
Member

Откуда: California
Сообщений: 1827
defragmentator
Часто работодатели требуют "знание и умение применения методов оптимизации SQL-запросов, хранимых процедур и функций".
Причём, что они имеют в виду, пояснить не могут.
Я лично под этим понимаю умение грамотно построить систему.
Может, ещё что нужно?

чаще всего имеется ввиду, что есть какой-то софт, написанный х.з. кем и х.з. когда, техподдержки на него нету, т.к. дорого. но по мере роста информации приложение начинает тормозить. тогда и ищут оптимизатора БД :)
иногда требуется пару индексов постоить, а иногда нельзя уже ничего особо изменить.
ну или есть контора софтверная, которая пишет ПО, и им надо написать(изменить запросы) чтобы время отклика было меньше. А программеры с SQL не дружат и пишуть запросы как попало :)
21 май 12, 13:58    [12588364]     Ответить | Цитировать Сообщить модератору
 Re: Что есть "умение оптимизировать запросы"  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31956
defragmentator
Причём, что они имеют в виду, пояснить не могут.
Они хотят, чтобы человек, встречаясь с проблемой, не говорил всегда одно и то же: "нуууу, тут всё переписывать надо" :-)

Кроме того, зря вы считаете, что в грамотно построенной ситстеме этот навык не нужен.
21 май 12, 14:00    [12588384]     Ответить | Цитировать Сообщить модератору
 Re: Что есть "умение оптимизировать запросы"  [new]
Ivan Durak
Member

Откуда: Minsk!!!
Сообщений: 3752
defragmentator
Часто работодатели требуют "знание и умение применения методов оптимизации SQL-запросов, хранимых процедур и функций".
Причём, что они имеют в виду, пояснить не могут.
Я лично под этим понимаю умение грамотно построить систему.
Может, ещё что нужно?

ну так на вопрос "умеете?"
смело отвечай : "Умею!" и всё !!!
21 май 12, 14:29    [12588775]     Ответить | Цитировать Сообщить модератору
 Re: Что есть "умение оптимизировать запросы"  [new]
defragmentator
Member

Откуда:
Сообщений: 20504
Ivan Durak
defragmentator
Часто работодатели требуют "знание и умение применения методов оптимизации SQL-запросов, хранимых процедур и функций".
Причём, что они имеют в виду, пояснить не могут.
Я лично под этим понимаю умение грамотно построить систему.
Может, ещё что нужно?

ну так на вопрос "умеете?"
смело отвечай : "Умею!" и всё !!!


Ну и я так думаю. Кто ж не умеет. :)
Однако у меня ещё додумались (!!!) спросить, а как Вы будете это делать конкретно, по шагам:)
Я был в шоке. 0_0
21 май 12, 14:58    [12589062]     Ответить | Цитировать Сообщить модератору
 Re: Что есть "умение оптимизировать запросы"  [new]
ambarka_max
Member

Откуда: Россия
Сообщений: 517
Нужно тренироваться сса.. в уши говорить по делу и красиво :) Такой вопрос скорее попытка вызвать поток слов, чтобы проанализировать его(поток) на адекватность. Скорее всего у них имеют место проблемы именно в плане падения производительности. Люди (возможно без знаний в этой области) просто хотят убедиться, умеешь ты копать в этом направлении и насколько хорошо.
21 май 12, 15:30    [12589417]     Ответить | Цитировать Сообщить модератору
 Re: Что есть "умение оптимизировать запросы"  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6724
defragmentator
Я лично под этим понимаю умение грамотно построить систему.
Мне кажется что вы понимаете в правильном направлении ибо это больше чем умение оптимизировать и понимания в чём трабла.

defragmentator
Однако у меня ещё додумались (!!!) спросить, а как Вы будете это делать конкретно, по шагам:)
Офиненно. Умение формализовывать знания, это высокая степень их понимания.

Ну ту много слов не надо, мне кажется надо просто по существу, обобщённо.
На практике конечно способов/стратений более одного, в зависимости от настроения и целей. Но общий подход примерно одинаков.
21 май 12, 16:36    [12590027]     Ответить | Цитировать Сообщить модератору
 Re: Что есть "умение оптимизировать запросы"  [new]
andsm
Member

Откуда: Москва
Сообщений: 1320
Блог
Умение оптимизировать запросы - это умение подправить существующие запросы с минимальными изменениями обеспечив существенное ускорение. Перед тем как изменять запросы и/или добавлять индексы, менять таблицы - суметь четко понять в чем проблема и локализовать ее.

defragmentator
Однако у меня ещё додумались (!!!) спросить, а как Вы будете это делать конкретно, по шагам:)

Это был явно не я - у нас были открыты позиции только в Киеве и Ереване, сегодня поиск завершен. Но задаю я подобный вопрос на каждом собеседовании. Набор шагов по оптимизации вполне стандартный, зависимости от типа системы проявляются конечно но разброс возможных подходов не слишком большой.

ambarka_max
Нужно тренироваться сса.. в уши говорить по делу и красиво :) Такой вопрос скорее попытка вызвать поток слов, чтобы проанализировать его(поток) на адекватность. Скорее всего у них имеют место проблемы именно в плане падения производительности. Люди (возможно без знаний в этой области) просто хотят убедиться, умеешь ты копать в этом направлении и насколько хорошо.

В пятницу было собеседование с таким кандидатом, который ничего не знал но говорил много и уверенно. После первых минут 10 стал понятен его околонулевый уровень знаний. Дальше было еще мин 20 когда говорил почти сплошь кандидат, только для того чтобы не отказывать ему слишком явно. Так что поток слов при отсутствии знаний может помочь только когда интервью проводят те кто не разбирается в соотвествующей области.
21 май 12, 16:43    [12590089]     Ответить | Цитировать Сообщить модератору
 Re: Что есть "умение оптимизировать запросы"  [new]
is_me
Member

Откуда: Нижний Новгород
Сообщений: 165
andsm,

Заточить запрос к заданному критерию оптимальности,
которые могут быть какие угодно:

- Повышение быстродействия запроса
- Повышение читабельности (прозрачности) запроса
- Баланс(загрузка сервера/рабочей станции/канала связи)
и т.д.
21 май 12, 16:47    [12590127]     Ответить | Цитировать Сообщить модератору
 Re: Что есть "умение оптимизировать запросы"  [new]
defragmentator
Member

Откуда:
Сообщений: 20504
andsm,

1. Индексы (построить нужные, убрать лишние)
2. Обновить статистику
3. По возможности избавиться от курсоров

Ну а дальше моя фантазия иссякает.
Ну строить запросы в соответствии с индексами - это включает уже п.1
21 май 12, 16:58    [12590250]     Ответить | Цитировать Сообщить модератору
 Re: Что есть "умение оптимизировать запросы"  [new]
is_me
Member

Откуда: Нижний Новгород
Сообщений: 165
defragmentator
andsm,

1. Индексы (построить нужные, убрать лишние)
2. Обновить статистику
3. По возможности избавиться от курсоров

Ну а дальше моя фантазия иссякает.
Ну строить запросы в соответствии с индексами - это включает уже п.1


Да курсоры это зло, но если критерием служит повышение читабельности
и интуитивного понимания того, что написано в запросе (для сопровождения
одного запроса сразу несколькими специалистами)
то относительно быстрый курсор со свойствами static и forward only может помочь.
21 май 12, 17:01    [12590288]     Ответить | Цитировать Сообщить модератору
 Re: Что есть "умение оптимизировать запросы"  [new]
andsm
Member

Откуда: Москва
Сообщений: 1320
Блог
defragmentator
andsm,

1. Индексы (построить нужные, убрать лишние)
2. Обновить статистику
3. По возможности избавиться от курсоров

Ну а дальше моя фантазия иссякает.
Ну строить запросы в соответствии с индексами - это включает уже п.1


Маловато будет, есть еще много чего. После того как пунктов станет заметно больше, и при этом будет умение их реально делать, можно будет говорить про умение оптимизировать запросы.
21 май 12, 17:02    [12590305]     Ответить | Цитировать Сообщить модератору
 Re: Что есть "умение оптимизировать запросы"  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
defragmentator
3. По возможности избавиться от курсоров
Курсоры надо убирать, когда очевидно, что они - узкое место. Да и вообще, как бы, любое лечение надо начинать с диагноза.
21 май 12, 17:04    [12590320]     Ответить | Цитировать Сообщить модератору
 Re: Что есть "умение оптимизировать запросы"  [new]
is_me
Member

Откуда: Нижний Новгород
Сообщений: 165
andsm
defragmentator
andsm,

1. Индексы (построить нужные, убрать лишние)
2. Обновить статистику
3. По возможности избавиться от курсоров

Ну а дальше моя фантазия иссякает.
Ну строить запросы в соответствии с индексами - это включает уже п.1


Маловато будет, есть еще много чего. После того как пунктов станет заметно больше, и при этом будет умение их реально делать, можно будет говорить про умение оптимизировать запросы.


Только 3 пункт как таковой относится к оптимизации запросов,
1(особенно) и 2 относится к оптимизации базы данных.
21 май 12, 17:06    [12590339]     Ответить | Цитировать Сообщить модератору
 Re: Что есть "умение оптимизировать запросы"  [new]
RubinDm
Member

Откуда:
Сообщений: 461
is_me

Да курсоры это зло, но если критерием служит повышение читабельности
и интуитивного понимания того, что написано в запросе (для сопровождения
одного запроса сразу несколькими специалистами)
то относительно быстрый курсор со свойствами static и forward only может помочь.


возможно, замена сразу нескольких таких специалистов другими, может помочь ничуть не хуже, чем замена самого курсора.
21 май 12, 17:12    [12590369]     Ответить | Цитировать Сообщить модератору
 Re: Что есть "умение оптимизировать запросы"  [new]
is_me
Member

Откуда: Нижний Новгород
Сообщений: 165
RubinDm
is_me
Да курсоры это зло, но если критерием служит повышение читабельности
и интуитивного понимания того, что написано в запросе (для сопровождения
одного запроса сразу несколькими специалистами)
то относительно быстрый курсор со свойствами static и forward only может помочь.


возможно, замена сразу нескольких таких специалистов другими, может помочь ничуть не хуже, чем замена самого курсора.


1. Вы говорите о другом критерии, о повышении производительности, который более насущный.
2. Курсоры реально могут повысить читабельность кода. Но ТОЛЬКО в обоснованном случае.

PS: почему все искушенные программисты говорят об искусстве избежать использование курсоров, а никто не говорит об искусстве грамотно их использовать?
21 май 12, 17:18    [12590406]     Ответить | Цитировать Сообщить модератору
 Re: Что есть "умение оптимизировать запросы"  [new]
RubinDm
Member

Откуда:
Сообщений: 461
is_me
PS: почему все искушенные программисты говорят об искусстве избежать использование курсоров, а никто не говорит об искусстве грамотно их использовать?

Потому что сервер заточен на пакетную обработку данных, и он отлично справляется со своими задачами. А курсоры делают обработку построчной. В подавляющем большинстве случаев использование курсора - это не реальная необходимость, а попытка реализовать задачу, которую не удалось решить написанием обычного запроса ввиду нехватки у разработчика опыта.
21 май 12, 17:26    [12590456]     Ответить | Цитировать Сообщить модератору
 Re: Что есть "умение оптимизировать запросы"  [new]
defragmentator
Member

Откуда:
Сообщений: 20504
Если в курсоре вызывается команда типа xp_cmdshell, то от него, конечно никак не избавишься.
А если только select, то избавиться можно довольно часто.
21 май 12, 17:31    [12590502]     Ответить | Цитировать Сообщить модератору
 Re: Что есть "умение оптимизировать запросы"  [new]
is_me
Member

Откуда: Нижний Новгород
Сообщений: 165
RubinDm
is_me
PS: почему все искушенные программисты говорят об искусстве избежать использование курсоров, а никто не говорит об искусстве грамотно их использовать?

Потому что сервер заточен на пакетную обработку данных, и он отлично справляется со своими задачами. А курсоры делают обработку построчной. В подавляющем большинстве случаев использование курсора - это не реальная необходимость, а попытка реализовать задачу, которую не удалось решить написанием обычного запроса ввиду нехватки у разработчика опыта.

Опыта или времени?
А если критерий - минимизация времени на написание запроса (разовый запрос)?
MIN(время написания запроса с курсором + время его исполнения) <
MIN(время написания запроса без + время его исполнения)
Еще раз, вернуться к сути вопроса ТС...
Работодатель - не программист, а оптимизатор. Не нужно смотреть в одну точку - оптимизация есть повышение быстродействия.
Оптимизация - есть функция минимум от одного аргумента - критерия, который может принимать не одно значение...
21 май 12, 17:32    [12590508]     Ответить | Цитировать Сообщить модератору
 Re: Что есть "умение оптимизировать запросы"  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
defragmentator
Если в курсоре вызывается команда типа xp_cmdshell, то от него, конечно никак не избавишься.
Да легко - переписав на тупой цикл (и пофиг, что еще тормознее будет). Зато без курсоров, чо.
21 май 12, 17:33    [12590515]     Ответить | Цитировать Сообщить модератору
 Re: Что есть "умение оптимизировать запросы"  [new]
is_me
Member

Откуда: Нижний Новгород
Сообщений: 165
Вспоминается русская пословица:
- У хорошего мастера всегда лишние детали останутся...
Как то чувствуется, что идет попытка "выкинуть" курсоры из SQL.
21 май 12, 17:35    [12590537]     Ответить | Цитировать Сообщить модератору
 Re: Что есть "умение оптимизировать запросы"  [new]
RubinDm
Member

Откуда:
Сообщений: 461
is_me
Как то чувствуется, что идет попытка "выкинуть" курсоры из SQL.

нет, вовсе нет.
21 май 12, 17:40    [12590559]     Ответить | Цитировать Сообщить модератору
 Re: Что есть "умение оптимизировать запросы"  [new]
RubinDm
Member

Откуда:
Сообщений: 461
is_me
А если критерий - минимизация времени на написание запроса (разовый запрос)?

Если запрос разовый, то зачем его оптимизировать? Маловероятно, что такой запрос будут писать (и тем более читать) 10 разработчиков, так что можно написать его как угодно, и даже стыдно не должно быть за то, как он написан (разве что перед сервером).
21 май 12, 17:47    [12590589]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2 3 4   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить