Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Новости сайта "Упражнения по SQL" (http://www.sql-ex.ru)


Информационный Канал Subscribe.Ru

Новости сайта "Упражнения по SQL (http://www.sql-ex.ru)" Выпуск 40 (18 июня 2005 г.)

http://www.sql-ex.ru

Новым посетителям сайта

Сайт посвящен изучению языка, с помощью которого осуществляется взаимодействие с реляционными (и не только) СУБД. Суть обучения состоит в выполнении заданий на написание запросов к учебным базам данных; при этом система контролирует правильность выполнения заданий. В настоящее время реализованы все операторы подъязыка манипуляции данными (DML), которые включают в себя оператор извлечения данных SELECT, а также операторы модификации данных - INSERT, DELETE и UPDATE.

Мы надеемся, что справочного материала сайта окажется достаточно для самостоятельного обучения. Кроме того, свои решения вы можете обсудить на форуме сайта. Опытных же специалистов приглашаем проверить (продемонстрировать) свое мастерство и принять участие в соревновании, обеспечиваемом рейтинговой системой учета времени выполнения заданий. Фактически, рейтинг ведется на втором этапе тестирования, который начинается сейчас после решения 59-ти задач первого этапа. При подсчете рейтинга каждого участника отбрасывается один самый худший показатель среди всех решенных им упражнений.

Имеется возможность получить сертификат по SQL DML при выполнении определенного количества заданий.


Новости сайта

§ BekNatali обнаружила несогласованность данных в проверочной базе, которая появилась после добавления последних задач. Несогласованность уже устранена.

§ По сообщению от ABev.SQL внесено изменение в формулировку задачи 83, устранившее неоднозначность ее понимания.

§ Число подписчиков - 2147

Число участников рейтинга - 3352

Число участников второго этапа - 326

Лучшие результаты (ТОР 20)

No Person Number of
Sel_ex
Last_Sel Number of
DML_ex
Scores Days Days_2 LastSolved LastVisit
1 Гонтовой В.А. (noname) 137 137 20 312 68 9.705 23 May 2005 15 Jun 2005
2 Галиаскаров Э.Г. (Galogen) 137 137 20 312 185 61.297 26 May 2005 16 Jun 2005
3 Валуев Д.И. (Fiolent) 136 137 20 310 630 26.470 26 May 2005 17 Jun 2005
4 Зверев Д.Л. (dimzv) 136 112 20 308 580 2.499 06 Jun 2005 15 Jun 2005
5 Кувалкин К.С. (Cyrilus) 135 137 20 308 167 5.020 10 May 2005 16 Jun 2005
6 Леденев С.А. (Shurgenz) 135 137 20 308 264 9.831 09 May 2005 07 Jun 2005
7 Мельникова И.А. (Iris_m) 135 41 20 308 380 89.865 27 May 2005 14 Jun 2005
8 Колосов А.С. (KAS) 134 137 20 306 25 3.398 11 Mar 2005 14 Jun 2005
9 Сныткин В.Л. (Ded I) 134 136 20 304 252 7.456 12 May 2005 17 Jun 2005
10 Рахманов И.Е. (bloom) 134 136 20 304 148 14.171 11 May 2005 15 Jun 2005
11 Hakobyan H.H. (hamlet) 134 136 20 304 220 37.869 07 May 2005 03 Jun 2005
12 Шипунов И. (IAS) 134 136 20 304 334 82.080 13 May 2005 26 May 2005
13 Иткин И.Л. (joseph_itkin) 132 136 20 299 375 2.849 07 Mar 2005 13 Apr 2005
14 Spirin (spirin) 131 136 19 296 158 13.461 21 Jan 2005 24 Jan 2005
15 Михайлов В.Г. (mslava) 132 136 17 293 648 10.504 25 Mar 2005 25 Mar 2005
16 Пятница О.А. (Robin) 125 128 20 287 754 74.630 19 Mar 2005 06 May 2005
17 Митронин А.А. (mitronin) 124 124 20 285 701 27.585 31 May 2005 01 Jun 2005
18 Gershovich (VIG) 121 67 20 279 823 10.622 12 Jun 2005 17 Jun 2005
19 Булаев В.В. (Kvix) 119 121 20 274 266 24.671 18 May 2005 18 May 2005
20 Тортумашев Е.А. (Johnny) 119 121 20 274 219 68.741 19 May 2005 15 Jun 2005

Лучшие результаты за неделю

No surname n_sel sel_all sel_scores dml_scores scores rating last_visit
1 >Стройнов Д.С. (Voland3D) 53 53 93 23 116 412 17 Jun 2005
2 >Belkova (Belkova) 52 58 95 19 114 356 16 Jun 2005
3 >Петров А.И. (Lord Alex) 43 43 75 3 78 557 17 Jun 2005
4 >Садовников А.Н. (raul) 22 64 40 32 72 183 17 Jun 2005
5 >Комраков К.С. (Kote) 37 37 65 0 65 660 17 Jun 2005
6 >Sivuchenkov A.V. (Dron) 30 30 55 7 62 818 17 Jun 2005
7 >yusupov (yusup) 34 34 59 0 59 757 17 Jun 2005
8 >Панфилов А.Г. (Chel) 30 30 55 0 55 817 17 Jun 2005
9 Густ А. (ang) 27 28 46 0 46 908 14 Jun 2005
10 Мальборо Д.А. (SuperMan) 21 29 43 0 43 860 12 Jun 2005
11 >Алалыкин В.М. (BOBAH) 20 94 41 0 41 67 17 Jun 2005
12 sabo (Adas) 25 25 40 0 40 1053 15 Jun 2005
13 Змачинский А.Н. (DlinnY) 22 22 31 9 40 1301 16 Jun 2005
14 Петов Т.А. (Murray) 23 23 34 2 36 1221 14 Jun 2005
15 S E.I. (Jeha) 19 59 35 0 35 260 16 Jun 2005
16 >Елохина В.А. (e_Vik) 16 40 35 0 35 600 17 Jun 2005
17 >Dron (xe-xe) 23 23 34 0 34 1204 17 Jun 2005
18 >АВСИЕВИЧ С.В. (SegA) 23 23 34 0 34 1214 17 Jun 2005
19 art A.A. (timofei) 14 41 27 6 33 720 17 Jun 2005
20 BVA (Blade_Walker) 14 27 32 0 32 973 16 Jun 2005
21 >Страшников А. (EffEct) 15 94 31 0 31 68 17 Jun 2005
22 Makedonsky (e_moe) 12 34 28 0 28 770 17 Jun 2005
23 >Воронков А. (db) 20 20 27 0 27 1431 17 Jun 2005
24 Mironov N.A. (Nikita Mironov) 3 62 3 23 26 245 17 Jun 2005
25 >Ледянкин (Magneto) 10 57 24 0 24 368 17 Jun 2005
26 Борисов (GDR) 16 16 21 3 24 1566 16 Jun 2005
27 >Konyshev (Phohack) 4 73 10 11 21 132 17 Jun 2005
28 Курбатов А.А. (Александр Курбатов) 11 48 20 1 21 501 11 Jun 2005

Изучаем SQL

Как реляционная база данных выполняет и оптимизирует ваш запрос

Robert L. Bogue (оригинал)
Перевод Моисеенко С.И.

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

Цели оптимизации запроса

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

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

Индексы

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

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

Используя индекс, движок базы данных должен выполнить два чтения данных на каждую запись, которую требуется извлечь из базы данных. Первое чтение выполняется в индексе, чтобы определить местонахождение указателя на фактическую запись. Второе чтение выполняется по адресу, определенному указателем. Эту оценку стоимости сервер баз данных примет во внимание, пытаясь выполнить ваш запрос. Это также основная причина того, почему анализатор запросов решит не использовать индекс. Ниже в параграфе Покрытие индексами вы узнаете о приеме, позволяющем избежать удвоения операций чтения; однако, в большинстве случаев использование индекса означает почти двойное число чтений на запись.

Страница статистики

Информацию, которую использует сервер SQL, чтобы определить, будет ли выгодным дополнительное чтение при использовании индекса, дает страница статистики. Каждый индекс имеет страницу информации, которая сообщает оптимизатору запросов распределение значений ключа индекса в полных данных таблицы. Это используется для получения приблизительной оценки количества строк, которое будет возвращено запросом.

Оптимизатор запросов должен знать, сколько строк будет возвращено, так как на основании этого он делает вывод о выгодности использования индекса. Если на основании страницы статистики индекса оптимизатор запросов решит, что результатом выполнения запроса будет незначительное число строк, он с большой вероятностью будет использовать индекс. Однако если оптимизатор запросов определит, что результатом будет относительно большое количество строк, то он вероятно решит использовать сканирование таблицы для выполнения запроса.

Окончание следует...

Полезная информация

Конкурс

§ Мы выставили наш сайт на конкурс Интернить 2005. Победитель определяется числом поданых голосов. Просьба проголосовать. (рекомендуемая оценка 3 :-)).

§ Ошибки и заплатки SQL Server 2000


Вышел SP4. Однако не рекомендуется его ставить на машины с памятью более 2Гб.
Подробности здесь (англ.).

Контакты

По всем вопросам, связанным с функционированием сайта, проблемами при решении упражнений, идеями вы можете обращаться к Сергею И.Моисеенко msi77@yandex.ru. Вы также можете предложить свои задачи для публикации на сайте.

Подписка Subscribe.Ru
Новости сайта "Упражнения по SQL"

Subscribe.Ru
Поддержка подписчиков
Другие рассылки этой тематики
Другие рассылки этого автора
Подписан адрес:
Код этой рассылки: comp.soft.db.sqlex
Отписаться
Вспомнить пароль

В избранное