Скрипт выгрузки данных в Inserts-файл

by Alexey Knyazev 26. января 2010 00:19

В одной из своих заметок в блоге я публиковал, как можно с помощью PowerShell заскриптовать все объекты той или иной БД на сервере баз данных (Скриптуем объекты БД (PoSh) ), а на днях в коментариях в этому скрипту появился вопрос, как заскриптовать сами данные, а не только "скелет" базы.


Но прежде чем показать скрипт на PowerShell, перечислю другие возможные способы реализации данной задачи

[Ещё]

Tags: , , , ,

PowerShell | SQL Server

Отправка SMS через Web-сервис (CLR)

by Alexey Knyazev 19. января 2010 01:00

Кратко суть задачи: ГАРАНТИРОВАННАЯ отправка СМС-сообщений из уже существующих информационных систем, которые используются у нас на предприятии. Первое, что пришло в голову-это отправка через почту (e-mail to SMS) на ящик вида [номер абонента]@[адрес оператора] большинство сотовых операторов предоставляют подобную услугу (например у МТС: 7913ххххххх@sms.mtslife.ru), хоть и не гарантируют 100% доставку всех сообщений таким образом. После того, как объём сообщений, который стал генерить наш сервер, стал достаточно большим, часть сообщений стали "пропадать" либо приходить с большими задержками. Пришлось искать другое решение.


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

[Ещё]

Tags: , , , , ,

SQL Server

Работа с Web-службами через CLR

by Alexey Knyazev 14. января 2010 00:32

Веб-служба, веб-сервис (англ. web service) — программная система, идентифицируемая строкой URI, чьи общедоступные интерфейсы определены на языке XML. Описание этой программной системы может быть найдено другими программными системами, которые могут взаимодействовать с ней согласно этому описанию посредством сообщений, основанных на XML, и передаваемых с помощью интернет-протоколов. Веб-служба является единицей модульности при использовании сервисно-ориентированной архитектуры приложения.


Для демонстрации работы с Web-службами из SQL Server`a, я воспользовался открытым Web-сервисом Центрального банка Российской Федерации, этот сервис привлекателен тем, что информация всегда актуальна, т.к. обновляется с завидной регулярностью и может быть полезна в реальных проектах.


Адрес Веб-сервиса: http://www.cbr.ru/DailyInfoWebServ/DailyInfo.asmx?WSDL.

[Ещё]

Tags: , , , , ,

SQL Server

Join Hints

by Alexey Knyazev 4. декабря 2009 23:36

Join Hints (LOOP | HASH | MERGE | REMOTE) - Подсказки оптимизатору запросов на выбор определенной стратегии соединения двух таблиц (используется в SELECT, UPDATE и DELETE).


Оптимизатор запросов SQL Server обычно автоматически выбирает наилучший план выполнения запроса. Поэтому подсказки, в том числе <подсказки_по_соединению>, рекомендуется использовать только опытным пользователям и администраторам базы данных в случае крайней необходимости.


Без явного указания аргумента (LOOP | HASH | MERGE | REMOTE) оптимизатор выбирает, на его взгляд, самый оптимальный план. Но мы всегда можем повлиять на него, если явно укажем подсказку.


Ниже разберем каждый из аргументов подробнее.

[Ещё]

Tags: ,

SQL Server

Job Activity Monitor (PоSh)

by Alexey Knyazev 12. ноября 2009 22:59

Продолжая тему скриптов на PowerShell в помощь администраторам БД, предлагаю вариант Job Activity Monitor(Журнал выполнения заданий) на PowerShell.


Так как задания SQL Server Agent чаще всего выполняются по расписанию, то, скорее всего, вам потребуется просматривать историю их выполнения, например для того, чтобы убедиться, что они выполняются успешно и каких-либо проблем не возникает.


Год назад я публиковал вариант в виде Windows-приложения (http://www.itcommunity.ru/blogs/mssql/archive/2008/12/04/40235.aspx), теперь более лёгкий и гибкий скрипт.

[Ещё]

Tags: , , ,

PowerShell | SQL Server

Мониторинг блокировок на PowerShell

by Alexey Knyazev 10. ноября 2009 22:54

Блокирование (LOCK) Каждая транзакция запрашивает блокировку разных типов ресурсов, например строк, страниц или таблиц, от которых эта транзакция зависит.


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


Блокировки (особенно взаимоблокировки) - головная боль любого администратора, для их отслеживания написано не мало инструментов, в качестве примера работы с PowerShell предлагаю свой вариант утилиты для мониторинга блокировок.

[Ещё]

Tags: , , ,

PowerShell | SQL Server

Брутфорсим УЗ в SQL Server

by Alexey Knyazev 21. октября 2009 22:00

Полный перебор (или метод «грубой силы» от англ. brute force) — метод решения задачи путем перебора всех возможных вариантов. Сложность полного перебора зависит от количества всех возможных решений задачи.


Если пространство решений очень велико, то полный перебор может не дать результатов в течение нескольких лет или даже столетий.


Допустим у вас на сервере БД есть учётная запись (записи) с SQL-авторизацией и вам необходимо востановить её пароль, например вы забыли пароль SA, а другой УЗ с правами sysadmin-НЕТ. Либо нельзя, по каким либо причинам, менять пароль у УЗ, а доступ к данным под этим логином необходим. На этот случай предлагаю способ "грубой силы".

[Ещё]

Tags: ,

SQL Server

Перекрестные запросы в Т-SQL

by Alexey Knyazev 20. октября 2009 22:15

Перекрестные запросы (Crosstab Query) являются еще одной специфической разновидностью запросов на выборку. Предназначены они для более глубокого анализа информации, хранящейся в таблицах.


Ключевым словом SQL-оператора перекрестного запроса, задающим его тип, является слово TRANSFORM (преобразовать). Это подразумевает, что значения одного из столбцов (полей) выборки, будут преобразованы в названия столбцов итоговой выборки.


Результаты перекрестного запроса группируются по двум наборам данных, один из которых расположен в левом столбце (столбцах) таблицы, а второй — в верхней строке. В остальном пространстве таблицы отображаются результаты статистических расчетов (Sum, Count и т.д.), выполненных над данными трансформированного поля.

[Ещё]

Tags: ,

SQL Server

Обои на рабочий стол (SQL Server)

by Alexey Knyazev 18. октября 2009 22:09

Tags: ,

SQL Server

Снимок УЗ в SQL Server

by Alexey Knyazev 18. октября 2009 21:47

Появилась необходимость делать "снимок" всех логинов на сервере БД со всеми правами внутри сервера и правами на все базы, с возможностью быстро скриптом вернуть это состояние без накатывания БэкАпов.


Для этого случая я навоял небольшой скрипт, думаю он будет многим полезен, так как ещё одно его применение-это перенос УЗ между серверами БД.


За основу взял скрипт от microsoft (http://support.microsoft.com/kb/918992/ru), добавил помимо переноса логинов ещё и перенос серверных ролей+создание юзеров со всеми правами на базы.

[Ещё]

Tags: , , , ,

SQL Server