пятница, 8 ноября 2013 г.

Чудесный баг в SQL Server 2008 R2 SSIS (Awesome bug in SQL 2008 R2 SSIS)

Симптомы: имеется совершенно правильно сконфигурированный Data Source в Data Flow Task, который, однако, не возвращает никаких данных. При ближайшем рассмотрении выясняются любопытные вещи:

пятница, 4 октября 2013 г.

Environment variable is not visible (процесс не видит установленную environment variable)

Пытался прочитать недавно установленную environment variable из PowerShell в SQL Agent Job, но он упорно не видел ее. Наткнулся на следующую очевидную вещь, которую, видимо, знали все кроме меня:
 
 
т.е.  эти переменные кэшируются процессом во время старта и дальше он не видит их изменений (кроме случая, когда изменил их сам). Официального workaround не существует (кроме как перезапустить процесс), но вот вам неофициальный от меня: можно прочитать эти значения в реестре (например, при помощи следующей строчки в Powershell script).


$MSU=(New-Object -ComObject WScript.Shell).RegRead("HKLM\SYSTEM\ControlSet001\Control\....")
 

четверг, 4 июля 2013 г.

Poor Man's T-SQL Formatter (чудесная вещь, чтобы красиво оформлять ваш T-SQL код)

Всем рекомендую. Встраивается в SSMS и затем, по нажатию клавиши, делает то, что я обычно делать ленюсь.
UPD: Для SSMS 2014 надо также сделать следующее:
Создать папку:
%SystemDrive%\ProgramData\Microsoft\SQL Server Management Studio\12.0\Addins\
Скопировать файл из
%SystemDrive%\ProgramData\Microsoft\SQL Server Management Studio\11.0\Addins\PoorMansTSqlFormatterSSMSAddIn.AddIn
Взято отсюда.

Если есть проблемы с интеграцией, нужно установить шелл отсюда https://aka.ms/VS2015/IsoShell/en-US.

понедельник, 1 июля 2013 г.

SQL 2012 Always on step-by-step (пошаговая инструкция по конфигурированию Always on)

SQL 2012 Always on - удобное решение, обеспечивающее отказоустойчивость и распределение нагрузки (для приложений, которые это поддерживают) без необходимости иметь shared storage (хотя, для еще большей отказоустойчивости, можно объединить несколько SQL Failover clusters в Always on реплики). Конфигурировать это решение достаточно просто и удобно (я делал это на Windows Server 2008 R2 + SQL 2012 в домене Active Directory).

вторник, 25 июня 2013 г.

OPTION (OPTIMIZE FOR ( @xColumns = NULL )) значительно повышает производительность XML query

Случайно наткнулся на

select ColumnNames.value('.', 'nvarchar(300)') name
from @xColumns.nodes('/columns/name') T1(ColumnNames)
OPTION (OPTIMIZE FOR ( @xColumns = NULL ))
добавление последней строчки уменьшило время выполнения аналогичного запроса в моем случае аж на 25% (10мс). Нашел тут:
http://stackoverflow.com/

вторник, 18 июня 2013 г.

Force instance removal from SQL UCP (насильно убрать managed instance из Utility Control Point)

Предположим, вы деинсталлировали SQL Server instance и забыли его предварительно убрать из UCP. Он будет там торчать вечно, серенький и печальный. Чтобы убрать его оттуда, можно воспользоваться следующей командой (на сервере с UCP):

EXEC msdb.dbo.sp_sysutility_ucp_remove_mi @instance_id=xx

xx берется отсюда:

SELECT instance_id,instance_name 

    FROM msdb.dbo.sysutility_ucp_managed_instances_internal 


четверг, 9 мая 2013 г.

Google Provision API: Single class to work with. Простой класс для работы с основными объектами Google Provision API

Если у вас есть Google Apps Business или Education, можно совершенно замечательно пользоваться преимуществами Provision API - создавать и управлять пользователями (в частности в Gmail). Некоторое затруднение состоит в том, что какими-то свойствами пользователя надо управлять через AppsService, а другими - через OrganizationService, что не очень удобно.

понедельник, 22 апреля 2013 г.

Lightswitch - dynamically change the control properties: менять свойства объектов на основе данных "на лету"

Задача: есть форма в Lighswitch, необходимо, чтобы отдельные записи были запрещены для редактирования на основе данных из некоторого поля, типа

среда, 20 марта 2013 г.

Remove page breaks from SSRS report (убрать страницы из отчета SSRS)

Если надо, чтобы отчет не разбивался на страницы и был длинным, как простыня, надо в XML код после тэга вставить 0in


среда, 6 марта 2013 г.

VB.NET: query DNS SRV records (получить SRV-записи из DNS)

С простыми записями типа A и PTR все понятно, тут  System.NET. Однако, если надо получить из DNS что-то более нестандартное, типа MX или, как в моем случае, SRV, то задача чуть менее тривиальная:

пятница, 25 января 2013 г.

Add new assemblies to your SSIS project (добавить новые DLL к SSIS)

Чтобы добавить новые DLL/классы/сборки к вашему SSIS проекту, надо скопировать их (DLLs) в C:\Program Files\Microsoft SQL Server\100\DTS\Binn (может варьироваться в зависимости от версии SQL)

Кстати, отличные примеры по Gmail API, которые можно задействовать в SSIS скриптах, находятся тут: http://google-gdata.googlecode.com/svn/trunk/clients/cs/samples/appsforyourdomain/appsdemo.cs