Новости сайта "Упражнения по SQL" (http://www.sql-ex.ru) 191
Новости сайта "Упражнения по SQL (http://www.sql-ex.ru)" Выпуск 191 (24 мая 2008 г.)
Новым посетителям сайта
Сайт посвящен изучению языка, с помощью которого осуществляется взаимодействие с реляционными (и не только) СУБД. Суть обучения
состоит в выполнении заданий на написание запросов к учебным базам данных; при этом система контролирует правильность выполнения заданий. В настоящее время реализованы все операторы подъязыка манипуляции данными (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)
Помимо выполнения команд T-SQL, есть другие команды, которые также могут быть выполнены изнутри sqlcmd. Мы уже видели ":ED" для вызова редактора. Есть и другие замечательные команды, например: ":Error", ":Perftrace", ":XML ON" и т.д. В BOL вы найдете их подробное описание и примеры. Очень мощной является команда :Perftrace, поскольку она позволяет Вам выводить статистику (Ввод/вывод, Время, тексты Showplan, профайл и т.д.) в файл.
4) Редактирование скриптов SQLCMD в SSMS:
Можно даже использовать режим SQLCMD в SSMS, чтобы редактировать скрипты SQLCMD. Вы можете увидеть его на следующем рисунке:
Как Вы уже заметили, следует использовать !! перед командой 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.
Опция DAC также доступна посредством этой утилиты, как уже упоминалось в одном из предыдущих постов нашего блога.
8) Наконец, использование ":CONNECT"
Из одного единственного скрипта можно подключиться к различным экземплярам SQL Server и выполнить скрипты. Это может здорово помочь администратору в обслуживании сервера.
Мы настоятельно рекомендовали бы познакомиться с этой замечательной утилитой командной строки и начать переводить ваши старые скрипты на sqlcmd.
08/12/2007
Полезная информация
§ Онлайновый выпуск рассылки можно почитать на сайте.
§ Все статьи, публикуемые в рассылке, затем выкладываются на сайте Книги и статьи по SQL.
По всем вопросам, связанным с функционированием сайта, проблемами при решении упражнений, идеями вы можете обращаться к Сергею И.Моисеенко msi77[@]yandex.ru. Вы также можете предложить свои задачи для публикации на сайте.