Домены .RU/.РФ

Автор Тема: В каком объеме необходимо знать SQL  (Прочитано 8496 раз)

0 Пользователей и 1 Гость просматривают эту тему.

zag2art

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Артур
В этой теме бы хотелось от сдавших услышать советы насчет того, в каком объеме для сдачи экзамена нужно знать SQL и, соответственно, какие материалы (книги?) лучше использовать для подготовки.

fuhrer

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Виталий
В каком объеме необходимо знать SQL
« Ответ #1 : Октябрь 25, 2010, 10:35:00 am »
К. Дж. Дейт Введение в системы баз данных

zag2art

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Артур
В каком объеме необходимо знать SQL
« Ответ #2 : Ноябрь 16, 2010, 08:17:55 pm »
Сам отвечаю.
 Необходимо понимать:
 транзакции, уровни изоляции транзакций, блокировки. Связь транзакций и блокировок. Какие проблемы решаются на каждом уровне изоляции транзакций;
 запросы, планы запросов - уметь их анализировать профайлером.
 индексы: обычные, кластерные - связь индексов и блокировок.
 физические операторы поиска и сканирования таблиц, индексов.
 знать что такое взаимоблокировки и причины их возникновения
 уметь анализировать в профайлере ожидания на блокировках, взаимоблокировки.
 уметь самому составлять простейшие запросы на T-SQL
 знать что такое статистика и что дает регламентная операция обновления статистики и процедурного кеша.
« Последнее редактирование: Ноябрь 16, 2010, 08:19:52 pm от Артур »

Droni

  • Модератор
  • Пользователь
  • *****
  • Сообщений: 97
В каком объеме необходимо знать SQL
« Ответ #3 : Ноябрь 19, 2010, 09:32:20 am »
Quote (zag2art)
связь индексов и блокировок

 Можно подробнее про это, что имеется ввиду ?

zag2art

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Артур
В каком объеме необходимо знать SQL
« Ответ #4 : Ноябрь 20, 2010, 10:21:34 am »
Имеется ввиду следующее: при выполнении запроса блокируются все записи которые выбираются на всех этапах выполнения запроса (в соответствии с планом запроса), а не те, которые будут по итогу возвращены пользователю.
 Как это относится к индексам - если отбор в запросе полностью соответствует индексу, то в результате выбирается одна запись - она же и блокируется, но бывают ситуации когда это не так, индекса подходящего нет и для выбора одной записи происходит полное сканирование индекса - в результате, хотя запрос вернул одну запись, заблокировалась вся таблица.
 Бывает еще вариант, когда отбор по нескольким полям совпадает с индексом, а еще по каким-то нет (в индексах важен порядок полей - данная ситуация получается когда отбор по одному из полей пропущен), тогда срабатывает поиск в индексе по неполному условию (INDEX SEEK... WHERE) - получается, что по первым полям происходит SEEK (быстрый поиск и нет блокировок), а по оставщейся части индекса сканирование с отбором (медленный поиск с перебором всех строк и блокированием всех записей).

Короче нужно понимать, что медленный запрос - это в большинстве случаев не только замедление данного конкретного пользователя, но еще и, скорее всего, избыточные блокировки.
 Поэтому - нужно строить запросы учитывая индексы; делать подходящие индексы (средствами 1С: порядок измерений, свойство "индексаровать", индексы во временных таблицах). Вот примерно так.

« Последнее редактирование: Ноябрь 20, 2010, 10:29:02 am от Артур »

Droni

  • Модератор
  • Пользователь
  • *****
  • Сообщений: 97
В каком объеме необходимо знать SQL
« Ответ #5 : Ноябрь 22, 2010, 09:42:34 am »
Quote (zag2art)
Имеется ввиду следующее: при выполнении запроса блокируются все записи которые выбираются на всех этапах выполнения запроса (в соответствии с планом запроса), а не те, которые будут по итогу возвращены пользователю.
 Как это относится к индексам - если отбор в запросе полностью соответствует индексу, то в результате выбирается одна запись - она же и блокируется, но бывают ситуации когда это не так, индекса подходящего нет и для выбора одной записи происходит полное сканирование индекса - в результате, хотя запрос вернул одну запись, заблокировалась вся таблица.
 Бывает еще вариант, когда отбор по нескольким полям совпадает с индексом, а еще по каким-то нет (в индексах важен порядок полей - данная ситуация получается когда отбор по одному из полей пропущен), тогда срабатывает поиск в индексе по неполному условию (INDEX SEEK... WHERE) - получается, что по первым полям происходит SEEK (быстрый поиск и нет блокировок), а по оставщейся части индекса сканирование с отбором (медленный поиск с перебором всех строк и блокированием всех записей)

 Спасибо, так намного понятней.

ak77

  • Новичок
  • *
  • Сообщений: 6
Re: В каком объеме необходимо знать SQL
« Ответ #6 : Ноябрь 27, 2015, 09:42:51 am »
Странно, что тема не активна.
Все же хотелось бы поподробнее узнать, критично ли незнание системных представлений MS SQL Server?
Могут ли на аттестации быть вопросы типа "Как получить ТОП 5 самых долгих запросов"? Или достаточно знать, что просто существуют соответствующие скрипты, но писать самому их на экзамене не надо?
Специалист и эксперт.

mrromeo

  • Пользователь
  • **
  • Сообщений: 22
Re: В каком объеме необходимо знать SQL
« Ответ #7 : Ноябрь 27, 2015, 12:19:40 pm »
Вот кстати последняя задача будет на эту тему, если решишь - получишь плюс
1C:Эксперт по технологическим вопрсам

Reglament

  • Пользователь
  • **
  • Сообщений: 10
Re: В каком объеме необходимо знать SQL
« Ответ #8 : Декабрь 06, 2015, 07:41:12 pm »
Странно, что тема не активна.
Все же хотелось бы поподробнее узнать, критично ли незнание системных представлений MS SQL Server?
Могут ли на аттестации быть вопросы типа "Как получить ТОП 5 самых долгих запросов"? Или достаточно знать, что просто существуют соответствующие скрипты, но писать самому их на экзамене не надо?
Подниму вопрос.
Товарищи, уже участвующие в сдаче экзамена, подскажите, спрашивают ли принимающие на память запросы в ms sql server? Например, вот такие:
http://kb.1c.ru/articleView.jsp?id=77#Длительные транзакции
или
http://kb.1c.ru/articleView.jsp?id=76#СPU_по_базам

Balalaykajazz

  • Новичок
  • *
  • Сообщений: 4
Re: В каком объеме необходимо знать SQL
« Ответ #9 : Декабрь 07, 2015, 09:19:48 am »
Странно, что тема не активна.
Все же хотелось бы поподробнее узнать, критично ли незнание системных представлений MS SQL Server?
Могут ли на аттестации быть вопросы типа "Как получить ТОП 5 самых долгих запросов"? Или достаточно знать, что просто существуют соответствующие скрипты, но писать самому их на экзамене не надо?
Подниму вопрос.
Товарищи, уже участвующие в сдаче экзамена, подскажите, спрашивают ли принимающие на память запросы в ms sql server? Например, вот такие:
http://kb.1c.ru/articleView.jsp?id=77#Длительные транзакции
или
http://kb.1c.ru/articleView.jsp?id=76#СPU_по_базам

ИМХО, на экзамене достаточно знать из какого динамического представления можно получить необходимую информацию. Спрашивать полный текст запроса или просить написать его на бумажке наврядил станут.

v_mazeich

  • Пользователь
  • **
  • Сообщений: 22
  • ФИО: Виталий Александрович
Re: В каком объеме необходимо знать SQL
« Ответ #10 : Декабрь 16, 2015, 03:17:05 am »
Странно, что тема не активна.
Все же хотелось бы поподробнее узнать, критично ли незнание системных представлений MS SQL Server?
Могут ли на аттестации быть вопросы типа "Как получить ТОП 5 самых долгих запросов"? Или достаточно знать, что просто существуют соответствующие скрипты, но писать самому их на экзамене не надо?
Подниму вопрос.
Товарищи, уже участвующие в сдаче экзамена, подскажите, спрашивают ли принимающие на память запросы в ms sql server? Например, вот такие:
http://kb.1c.ru/articleView.jsp?id=77#Длительные транзакции
или
http://kb.1c.ru/articleView.jsp?id=76#СPU_по_базам

ИМХО, на экзамене достаточно знать из какого динамического представления можно получить необходимую информацию. Спрашивать полный текст запроса или просить написать его на бумажке наврядил станут.
а мне вот сказали на бумажке написать оптимизированный запрос))

Reglament

  • Пользователь
  • **
  • Сообщений: 10
Re: В каком объеме необходимо знать SQL
« Ответ #11 : Декабрь 16, 2015, 03:59:12 pm »
Цитировать
а мне вот сказали на бумажке написать оптимизированный запрос))
а сам запрос был приведен в задании?
« Последнее редактирование: Декабрь 16, 2015, 04:00:53 pm от Reglament »

U83

  • Пользователь
  • **
  • Сообщений: 14
Re: В каком объеме необходимо знать SQL
« Ответ #12 : Декабрь 17, 2015, 12:02:59 am »
Цитировать
а мне вот сказали на бумажке написать оптимизированный запрос))

SQL запрос?