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

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


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

http://www.sql-ex.ru

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

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

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

Демонстрация плана выполнения запроса и сравнительная оценка эффективности решений поможет вам освоить принципы оптимизации запросов.

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


С наступающим Днем Победы, коллеги!

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

§ На сайте тестируется новый сервис - график сравнения времени решения задач второго этапа.
Ссылки на него еще не ведут, но желающие уже могут принять участие в тестировании, введя URL: http://www.sql-ex.ru/chart.php.
Замечание: требуется авторизация и нахождение на втором этапе решения задач.
Планируется сделать аналогичный график для оценки стоимости запросов-решений.
Свои замечания можно отправлять с сайта или по указанному внизу рассылки адресу.

§ У меня свои признаки приближения сессии :-). Опять появился человек, интенсивно использующий чужие решения. Удалил; его звали Лахтин А.А. "Услугу" ему оказал _student_.

 

§ В предверии нашествия иностранцев усилиями Fiolent привели в соответствие с русской английскую формулировку задачи 98.

§ Fiolent решил последнюю задачу (113), что, однако, не позволило ему подняться выше своего шестого места. Он долго выжидал. Видимо, считал время для достижения "круглого" результата - 48.000! Клянусь, что модераторство здесь совершенно не при чем :-).

§ OlegE подошел к задачам сложности 4 с весьма достойным результатом (задач 136, время 4.811).
Того же уровня достиг xax (136, 87.770)

§ Сохранил шансы на попадание в десятку:
Testo (128, 3.264)

§ Продолжили свое восхождение к вершине:
Phohack (135, 103.597)
EO (121, 16.388)
Eugeniе (119, 43.347)
arm (118, 27.745)
Voland3D (117, 27.138)
gps (117, 166.725)

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

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

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

Сертифицировано на сайте - 61

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

No Person Number of
Sel_ex
Last_Sel Number of
DML_ex
Scores Days Days_2 LastSolved LastVisit
1 Кувалкин К.С. (Cyrilus) 138 138 20 320 484 5.460 23 Mar 2006 05 May 2006
2 Kamaev V.M. (Heromantor) 138 138 20 320 128 9.066 14 Mar 2006 25 Mar 2006
3 Бураков С.Г. (burakov58) 138 138 20 320 419 17.395 24 Mar 2006 07 Apr 2006
4 Тарасов Д.Б. (Gavrila) 138 138 20 320 208 19.424 22 Mar 2006 05 May 2006
5 Голубин Р.С. (Roman S. Golubin) 138 138 20 320 210 20.835 16 Mar 2006 05 May 2006
6 Валуев Д.И. (Fiolent) 138 113 20 320 971 48.000 02 May 2006 05 May 2006
7 Войнов П.Е. (pаparome) 137 137 20 316 203 1.769 15 Mar 2006 05 May 2006
8 Зверев Д.Л. (dimzv) 137 137 20 316 869 3.278 22 Mar 2006 04 Apr 2006
9 Юлдашев М.Р. (Snowbear) 137 137 20 316 239 3.448 14 Mar 2006 02 May 2006
10 Абашин П.И. (Dizil) 137 137 20 316 203 3.776 15 Mar 2006 04 May 2006
11 Самохвалов В. (ValdemarES) 137 137 20 316 117 7.788 14 Mar 2006 03 May 2006
12 Мурашкин И.В. (lepton) 137 137 20 316 25 7.943 17 Apr 2006 04 May 2006
13 Носков Н.В. (niko2) 137 137 20 316 274 8.472 06 Apr 2006 06 Apr 2006
14 Крижевич С.А. (yaff) 137 137 20 316 259 14.801 16 Mar 2006 05 May 2006
15 Иванов А.Н. (Goapsy) 137 137 20 316 128 16.076 18 Mar 2006 25 Mar 2006
16 Держальцев В.А. (MadVet) 137 137 20 316 357 18.639 08 Apr 2006 15 Apr 2006
17 Зырин В.Е. (Vezyr) 137 137 20 316 63 20.618 17 Mar 2006 27 Apr 2006
18 Страшников А.С. (EffEct) 137 137 20 316 305 59.972 16 Mar 2006 02 May 2006
19 Матвеева Ю.Б. (Julia_M) 137 137 20 316 137 68.931 24 Mar 2006 05 May 2006
20 Галиаскаров Э.Г. (Galogen) 136 138 20 315 522 100.285 28 Apr 2006 28 Apr 2006

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

No surname n_sel sel_all sel_scores dml_scores scores rating last_visit
1 Chernyshkin N. (_boost_) 56 56 103 5 108 580 03 May 2006
2 Zhukov I.V. (Z.I.V.) 58 58 107 0 107 588 01 May 2006
3 Палий С.А. (PS_Sergey) 57 57 105 0 105 638 04 May 2006
4 >Утёнков М.Н. (=Maxim=) 54 54 100 0 100 752 05 May 2006
5 Pankratov S.A. (Marine) 45 45 76 0 76 1082 04 May 2006
6 Klushin H.V. (Герман) 35 35 64 0 64 1306 03 May 2006
7 Хотеева М.А. (Мария) 22 46 40 17 57 825 05 May 2006
8 Korniyko (Intracer) 26 36 52 3 55 1243 04 May 2006
9 Duzbayev N. (_djin) 28 34 54 0 54 1464 03 May 2006
10 Мельничук С. (Sasha M.) 26 33 52 0 52 1478 04 May 2006
11 >Ганопольский (Родион13) 36 36 52 0 52 1674 05 May 2006
12 >Алешина Н.С. (Ника) 30 37 50 0 50 1552 05 May 2006
13 >Останин С.А. (sergei74) 28 28 49 0 49 1761 05 May 2006
14 Беляков М.В. (Буремиг) 16 45 26 16 42 822 05 May 2006
15 >Хмара Е.В. (Evgeny72) 18 41 41 0 41 1104 05 May 2006
16 >Ушаков С.М. (Progrs) 16 49 27 13 40 486 05 May 2006
17 >frenkental (a2010) 4 60 6 32 38 275 05 May 2006
18 >Полянский А.В. (Очень лысый) 14 40 23 14 37 942 05 May 2006
19 Pankov A.V. (Punk6|4) 23 33 35 0 35 1811 01 May 2006
20 Еврасов А. С. (iMush) 23 23 34 0 34 2415 04 May 2006
21 Черноусов В.И. (_student_) 16 86 33 0 33 194 04 May 2006
22 Токарева А.В. (Антонина) 9 56 26 7 33 350 05 May 2006
23 >Решетников И.Д. (ArhAngel) 11 32 25 8 33 1317 05 May 2006
24 >GRIGORYAN A.P. (angel-ina) 14 23 31 0 31 1723 05 May 2006
25 >loskutov (bohj) 22 22 31 0 31 2583 05 May 2006
26 Панкратов Г.Е. (Grisa) 22 22 31 0 31 2596 05 May 2006
27 >saenko (banlex) 22 22 31 0 31 2623 05 May 2006

Изучаем SQL

От SQL 2000 к SQL 2005: Куда пропали все старые возможности?

Boris Baliner (оригинал: SQL 2000 to SQL 2005: Where Have All the Old Features Gone?)
Перевод Моисеенко С.И.

Поскольку все больше администраторов баз данных по всей планете начинают использовать серверы SQL 2005, но все еще управляют с их помощью серверами SQL 2000, я подозреваю, что будут повсюду раздаваться приглушенные стенания по поводу того, куда подевались все добрые старые средства. Хотя студия управления (Management Studio) имеет некоторые прекрасные долгожданные возможности, часть хорошего старых вещей там отсутствует.

Где мои испытанные и верные инструменты, например, панель задач (Taskpad)? Где опция IF EXISTS DROP, когда я генерирую скрипт хранимых процедур? Может кто-нибудь ущипнуть меня и сказать, что это только дурной сон?

Индустрия аспирина получит сумасшедшую прибыль … такие вот дела.

Назову несколько старых добрых друзей, которые канули в небытие:

· Панель задач (Taskpad).

· Возможность быстро заскриптовать разрешения на хранимые процедуры.

· Возможность быстро определить дисковое пространство в свойствах базы данных.

· Время создания хранимых процедур.

Несомненно, если Вы подключаетесь к экземпляру SQL Server 2005 с помощью студии управления, Вы получаете в свое распоряжение красочные отчеты и множество профессионально выглядящих графиков, но что они значат для большинства из нас, кто все еще не перевел свои серверы на SQL 2005, но уже обновил инструментальные средства?

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

Функциональные возможности панели задач

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

Вкладка General в разделе Database теперь находится в свойствах базы данных под тем же самым заголовком.

Информацию, подобную разделу Maintenance, можно обнаружить, выполнив запрос к таблице backupset в базе данных msdb:

select max(backup_start_date) from backupset
where database_name = 'моя база данных'

Замечание: опции базы данных (раздел Database) - число пользователей (Number of Users), дата создания (Date Created), и владелец (Owner) все еще можно найти в свойствах базы данных в инструментах (tools) SQL 2005.

Информация из раздела используемой памяти (Space allocated) может быть найдена с помощью следующего кода T-SQL:

select * from sysfiles

Или, если Вам требуется только выяснить, сколько места занимает журнал, выполните:

DBCC SQLPERF (LOGSPACE)

Вкладка Table Info? Я использую ее не очень часто, но Вы можете получить подобные функциональные возможности, выполнив:

Exec sp_spaceused 'ваша таблица'

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

Щелкните правой кнопкой мыши на базе данных, выберите Tasks > Generate Scripts, затем свою базу данных. Установите Include object Level Permissions в значение True. Замечание: если Вы установите опцию Include if NOT EXISTS в значение true, скрипт не будет создавать хранимую процедуру, если она уже существует в целевой базе данных.

Щелкните Next и выберите только Stored Procedures. Затем выберите, какие хранимые процедуры Вы хотите заскриптовать, проверьте окончательные опции и щелкните Finish.

К сожалению, если Вы хотите удалить и повторно создать процедуры, если они существуют на целевом сервере, то Вам придется вручную дописать следующий скрипт в начале каждой процедуры:

IF EXISTS (SELECT name FROM sysobjects
    WHERE name = 'ваша процедура' AND type = 'P')
    DROP PROCEDURE 'ваша процедура' GO

Этого действительно вне моего понимания. По причинам, известным только Microsoft и главному администратору компании Bayer (или какой-нибудь другой крупнейшей компании, выпускающей средство от головной боли), эта опция исчезла из финальной версии SQL 2005 RTM.

Смотрим дисковое пространство

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

exec xp_fixeddrives

Время создания хранимых процедур

По некоторым причинам временная составляющая столбца Create Date (даты создания) на вкладке Summary в SQL 2005 исчезла. Почему? Я предполагаю, что кто-то подумал, что администраторы базы данных больше в этом не нуждаются (я закатываю глаза). Хорошая же новость заключается в том, что Вы можете таки получить эту информацию, выполнив запрос к таблице sysobjects:

Select crdate as DateCreated
From dbo.sysobjects where name = 'ваша процедура'

Резюме

Я показал Вам, как обходиться с имеющимися инструментами SQL 2005, пока Вы не модернизировали ваши серверы к версии SQL Server 2005. Люди привыкают к любимым способам выполнять свою работу, и иногда "удивляются", когда их инструменты убирают. В один прекрасный момент им вдруг приходится забивать гвозди ручкой отвертки. Я надеюсь, что приемы достижения старых функциональных возможностей увеличат производительность труда, и что инструменты продолжат улучшаться.

13.04.2006

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

§ Все статьи, публикуемые в рассылке, затем выкладываются на сайте Книги и статьи по SQL.

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

Контакты

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

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

В избранное