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

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


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

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

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

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

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

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


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

§ В ответ на замечания masterziv-p и XelaVopelk поправил формулировку задачи 22.

§ Информация для сертифицированных специалистов. Пока на сайте нет сервиса для написания резюме сразу на двух языках (русский и английский). Однако я могу это сделать руками, если вы пришлете текст резюме (и другую сопутствующую информацию) на английском языке.
Вот пример, который я сделал по просьбе Shurgenz.

§ На следующей неделе собираюсь выставить 1-2 новые задачи. Планирую сдвинуть вниз границу второго этапа.

§ К третьему этапу подошел CepbIu (задач 138, время 7.605).

§ Изменения среди лидеров (решенные за неделю задачи третьего этапа):
4. MadVet (146)

§ Новые лица в ТОР 100 и вернувшиеся туда:
100. nadush (125, 191.512)

§ Продвинулись в рейтинге:
42. zerga (136, 2.123)
45. Angellore (136, 46.313)
47. wasp (135, 122.982)
81. Eka (128, 10.870)
86. paul (127, 6.154)
89. DeadLock5 (127, 105.208)

§ Продвижение ближайших претендентов на попадание в ТОР 100:
118. Shark (121, 2.612)
127. Sergey79 (120, 213.351)
137. Ариам (118, 6.769)
151. nibbles01 (113, 92.683)
172. Johnnymnemonic (110, 54.990)

§ На этой неделе сертифицированы:
Tamper (A08029302) [BK] - п.Нахабино, МО, Россия
Dimitry Yakovlevich (A08020059) [BK] - г.Санкт-Петербург, Россия

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

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

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

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

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

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

No Person Number of
Sel_ex
Last_Sel Number of
DML_ex
Scores Days Days_2 Days_3 S_3 LastSolved LastVisit
1 Сальников С.А. ($erges) 147 147 21 359 81 2.751 3.359 31 17 May 2008 23 May 2008
2 Печатнов В.В. (pvv) 145 146 21 354 190 19.151 6.326 28 26 Apr 2008 23 May 2008
3 Креславский О.М. (Arcan) 146 81 21 356 466 22.488 12.553 28 10 May 2008 23 May 2008
4 Держальцев В.А. (MadVet) 146 146 21 356 1128 60.815 28.482 28 18 May 2008 20 May 2008
5 Карасёва Н.В. (vlksm) 146 81 21 356 735 64.782 38.288 28 10 May 2008 23 May 2008
6 Любченко В.А. (IAS56) 146 81 21 356 615 403.439 373.617 28 11 May 2008 21 May 2008
7 Голубин Р.С. (Roman S. Golubin) 145 81 21 353 997 92.927 58.822 25 11 May 2008 23 May 2008
8 Мурашкин И.В. (lepton) 143 146 21 347 767 37.107 26.815 21 28 Apr 2008 12 May 2008
9 Белогурова К. (Katy_Ekb) 142 44 21 344 361 10.714 4.673 18 20 May 2008 23 May 2008
10 Войнов П.Е. (pаparome) 143 81 21 345 992 3.045 .213 17 12 May 2008 21 May 2008
11 Северюхин Ю.А. (Venser) 138 142 21 335 335 4.925 .655 14 01 Feb 2008 04 Feb 2008
12 Борисенков Д.В. (xuser) 141 142 21 340 92 3.217 .926 14 02 May 2008 23 May 2008
13 Тарасов Д.Б. (Gavrila) 141 81 21 339 998 23.531 2.501 14 20 May 2008 23 May 2008
14 Солдатенков Ю.С. (SolYUtor) 139 142 21 336 703 17.844 2.695 14 20 Apr 2008 23 May 2008
15 Кувалкин К.С. (Cyrilus) 139 142 21 336 1207 13.037 2.782 14 15 Mar 2008 23 May 2008
16 Шептунов П.П. (Dzen) 137 142 21 334 279 8.120 3.499 14 02 Oct 2007 15 Nov 2007
17 Селезнёв А.С. (Артём С.) 140 142 21 339 127 15.589 4.279 14 14 Mar 2008 31 Mar 2008
18 iglbeat (iglbeat) 142 81 21 342 281 27.442 6.641 14 21 May 2008 21 May 2008
19 Мальцев А.В. (Палкин) 137 142 21 334 422 48.779 7.690 14 13 Oct 2007 20 Jan 2008
20 Васьков Е.В. (Johan) 140 142 21 337 656 14.314 12.767 14 05 May 2008 05 May 2008

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

No surname n_sel sel_all sel_scores dml_scores scores rating last_visit
1 >Кремень Ю.А. (Test007) 45 57 96 0 96 1429 23 May 2008
2 Мусин М.Ф. (Minimalism) 40 40 76 19 95 1818 22 May 2008
3 Фурсин А.Н. (Vendigo) 38 38 73 17 90 2023 23 May 2008
4 Mosyagin A. (mopnux) 39 39 75 11 86 2152 23 May 2008
5 >Воробьев С. (Grey201) 32 32 60 17 77 2462 23 May 2008
6 >Khrustalev S. (Gladius) 40 40 76 0 76 2494 23 May 2008
7 >Клёпов А.Г. (XelaVopelk) 39 39 75 0 75 2537 23 May 2008
8 >Мартынов Р.В. (comp) 22 44 43 26 69 1476 23 May 2008
9 Лобанков Д.В. (Ден) 36 36 68 0 68 2896 21 May 2008
10 >Kanabekov A.A. (Aidyn) 36 36 68 0 68 2901 23 May 2008
11 >Грязнухин Ф.Э. (Grefil) 35 35 66 0 66 3035 23 May 2008
12 >Хилько В.М. (Voledy) 26 44 58 0 58 2213 23 May 2008
13 >Мусинов И.Е. (igmar) 24 38 48 8 56 2246 23 May 2008
14 >Matisov A. (yoj) 30 30 56 0 56 3755 23 May 2008
15 >Бяков И.С. (pho) 13 59 21 33 54 769 23 May 2008
16 >Klepalov D. (Ivt-05 K.D.) 10 10 20 34 54 3931 23 May 2008
17 core2q6600 (core2q) 26 26 44 9 53 4030 21 May 2008
18 >petya (alex_now) 29 29 50 1 51 4292 23 May 2008
19 >Умеров А.Н. (Goerik) 10 67 18 31 49 568 23 May 2008
20 Крылов В.А. (Vladimir33) 26 26 47 0 47 4653 23 May 2008
21 >Москаль С.Б. (smoscal) 25 25 45 1 46 4793 23 May 2008
22 Ткачук Ю. (shpionka_kat) 25 25 45 0 45 4958 22 May 2008
23 >Klimenko V. (afon) 25 25 44 0 44 5015 23 May 2008
24 >Мирзаян А.В. (мессир_Воланд) 26 26 44 0 44 5020 23 May 2008
25 Abramovich I. (fortis) 21 21 34 9 43 5074 21 May 2008
26 >xxx X.X. (bag) 26 26 42 0 42 5215 23 May 2008
27 >Кожушко А.А. (Stasca) 9 66 16 25 41 611 23 May 2008
28 >Klimovs S. (DSerz) 23 23 40 0 40 5373 23 May 2008

Изучаем SQL

Утилита SQLCMD в SQL Server 2005 (окончание, начало в вып.190)

decipherinfosys (оригинал: SQLCMD utility in SQL Server 2005 )
Перевод Моисеенко С.И.

2) Замена переменных:

Переменные в скрипте T-SQL можно заменить либо в интерактивном режиме, либо во время выполнения, а также используя переменные окружения. Пример:

sqlcmd /S(local) /E /iC:\test_sqlcmd.sql -v T1="Decipher_test" -v T2="create_date"

Содержимым скрипта test_sqlcmd.sql является

select $(T2) from sys.databases where name = '$(T1)';

Результатом выполнения будет:

C:\>sqlcmd /S(local) /E /iC:\test_sqlcmd.sql -v T1="Decipher_test" -v T2="create_date"

    create_date
----------------------
2007-10-13 14:38:01.953

3) Дополнительные команды sqlcmd:

Помимо выполнения команд T-SQL, есть другие команды, которые также могут быть выполнены изнутри sqlcmd. Мы уже видели ":ED" для вызова редактора. Есть и другие замечательные команды, например: ":Error", ":Perftrace", ":XML ON" и т.д. В BOL вы найдете их подробное описание и примеры. Очень мощной является команда :Perftrace, поскольку она позволяет Вам выводить статистику (Ввод/вывод, Время, тексты Showplan, профайл и т.д.) в файл.

4) Редактирование скриптов SQLCMD в SSMS:

Можно даже использовать режим SQLCMD в SSMS, чтобы редактировать скрипты SQLCMD. Вы можете увидеть его на следующем рисунке:

Рис.4

!!sqlcmd /S(local) /E /iC:\test_sqlcmd.sql -v T1="Decipher_test" -v T2="create_date"

Как Вы уже заметили, следует использовать !! перед командой sqlcmd, чтобы запустить ее из SSMS. Сначала Вы должны перейти в режим SQLCMD в SSMS, что можно сделать, нажав кнопку GUI, как показано на рисунке выше (можно также сделать это через настройки Tools/Options).

5) Использование ":!!":

Это также уже демонстрировалось выше. Данная команда позволяет выполнять команду уровня ОС на клиенте без необходимости использования xp_cmdshell. Пример:

C:\>sqlcmd /S(local) /E
1> :!! DIR
Volume in drive C has no label.
Volume Serial Number is DC51-3012
Directory of C:\
01/29/2007 07:34 PM 0 AUTOEXEC.BAT
03/20/2007 08:17 PM <DIR> bin
01/29/2007 07:34 PM 0 CONFIG.SYS
11/17/2006 07:54 AM 231 Default.aspx
01/29/2007 02:22 PM <DIR> dell
01/29/2007 07:37 PM <DIR> Documents and Settings
01/29/2007 02:28 PM <DIR> drivers
09/05/2001 09:00 PM 1,700,352 gdiplus.dll
01/31/2007 06:09 PM <DIR> IBM
01/29/2007 07:46 PM <DIR> Inetpub
08/23/2006 04:26 AM <DIR> privates
12/03/2007 08:26 PM <DIR> Program Files
03/20/2007 08:18 PM 125 project.lgp
03/20/2007 08:17 PM <DIR> rdDownload
03/20/2007 08:17 PM <DIR> rdTemplate
01/29/2007 07:38 PM 1,633 startup_debug.log
01/29/2007 02:12 PM 1,033 summary.htm
12/08/2007 05:29 PM 55 test_sqlcmd.sql
05/14/2007 06:19 PM 21,504 VacationList_DR.xls
01/03/2007 10:06 AM 4,337 Web.config
12/03/2007 08:27 PM <DIR> WINDOWS
01/29/2007 07:35 PM <DIR> wmpub
03/20/2007 08:17 PM <DIR> _DataXMLs
03/20/2007 08:17 PM <DIR> _Definitions
03/20/2007 08:17 PM <DIR> _Images
03/20/2007 08:17 PM <DIR> _Scripts
03/20/2007 08:17 PM <DIR> _StyleSheets
10 File(s) 1,729,270 bytes
17 Dir(s) 1,059,860,480 bytes free

6) Использование SQL Native Client

SQLCMD подключается с движку SQL Server при помощи .Net SQL Native Client в противоположность ODBC API, который использовался в osql.

7) DAC (Dedicated Admin Connection - администраторское подключение)

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

8) Наконец, использование ":CONNECT"

Из одного единственного скрипта можно подключиться к различным экземплярам SQL Server и выполнить скрипты. Это может здорово помочь администратору в обслуживании сервера.

Мы настоятельно рекомендовали бы познакомиться с этой замечательной утилитой командной строки и начать переводить ваши старые скрипты на sqlcmd.

08/12/2007

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

§ Онлайновый выпуск рассылки можно почитать на сайте.

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

§ Желающих поспособствовать популяризации сайта прошу проголосовать/поставить закладку в социальных сетях:
del.icio.us
dzone.com
Digg.com
stumbleupon.com

Контакты

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

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

В избранное