Ошибка сервера 547

Иногда, при работе с уже имеющимися данными (например перенос данных из MS Access) в базе данных Microsoft SQL Server возникает ошибка сервера 547: The ALTER TABLE statement conflicted with the FOREIGN KEY constraint "Key_FK00". The conflict occurred in database "myDatabase", table "dbo.Table", column 'Table_Id'. Причина этому очень проста: при создании отношения (неважно "один к одному" или "один ко многим") в исходном слолбце содержатся данные, которые отсутствуют в ключе таблицы. Обычно это вместо значения NULL имеется значение 0, но могут быть и другие данные.

Электронная книга об SQL Server 2008

Новая электронная книга о внедрении SQL Server 2008 доступна для свободного скачивания на английском языке. Авторы книги: Peter DeBetta, Greg Low и Mark Whitehorn.
Эта книга разделена на семь основных разделов: безопасность и управление, производительность, улучшения Type System, программирование, хранение, усовершенствования для высокой доступности и расширения бизнес-аналитики. По заявлениям авторов каждая глава предлагает получить представление о новых или об усовершенствованных возможностей в каждой из этих областей. Эта книга охватывает множество интересных мест, но естественно, что не может объять необъятное, и много чего не хватает. Тем не менее книга будет полезна для того чтобы познакомиться с технологией Microsoft SQL Server 2008 или понять что появилось нового и как это можно использовать.
Скачать книгу «Introducing Microsoft SQL Server 2008» можно тут (ISBN: 9780735625587). Для этого нужно зарегистрироваться на сайте с помощью Windows Live ID.

Microsoft Innovation Days. 3 октября. Отчет.

3 октября прошел очередной форум компаний-разработчиков "Innovation Day". Как обычно, поробую освятить прошедшее событие. Сам форум прошел интересно. Первая часть состояла из одной секции (ее назвали пленарной), а вторая часть из двух секций. Одна была адресована непосредственно разработчикам (техническая сессия), вторая управлению (бизнес сессия). Узнал несколько очень интересных вещей, но сначала как обычно о плохом.
Итак, что не понравилось. Да в общем все понравилось. Разве только два момента, первый — это то, что на сессиях немного повторяли пленарную часть. А также обе сессии были в общем интересны обоим категориям присутствующих (так как именно технические детали не показывались, да и не цель это Innovation Days, некоторые моменты были рассказаны при ответах на вопросы) а возможности, в том числе и технические и организационные были интересны всем. Вот если бы убрать повторения в первой части, то вполне можно было бы уложиться в рассмотрение вопросов в одной сессии. Но это на самом деле было не критично, ибо можно было перемещаться между сессиями и само расписание было спланировано грамотно. Про мастерство докладчиков и о подобном не упоминаю, так как выступали в основном специалисты Майкрософт и качество выступлений как обычно на высоте.
Теперь что интересного. Интересного было много, попробую вспомнить основные моменты. Ну во-первых, было сказано об открытии двух новых сайтов. Об этом я уже тут написал. Во-вторых, было рассказано об новой инициативе ISV Royalty Licensing. Отличная инициатива, позволяющая продавать свой софт совместно с необходимыми продуктами Майкрософт в рамках одной лицензии. Например, если Ваше приложение требует для работы полноценный Microsoft SQL Server 2008, то Вы его можете продать вместе со своим ПО, при чем сначала продать, потом заплатить за него Майкрософту по специальной очень неплохой цене. Правда у заказчика будет одно ограничение, купленное ПО Майкрософт в таком виде можно будет использовать только в рамках Вашего приложения и все. Также было подробно рассказано еще об одной инициативе: SLPS. Software Licensing and Protection (SLP) Services позволяет не только защизать свой код на ASP.NET (и это совсем не обфускация, это именно нормальная защита с кодированием) но и предложить клиентам гибкую политику активации. В самой минимальной конфигурации такая защита будет стоить 20$ в месяц плюс 1$ за каждую активацию, что в совокупности дает очень неплохую стоимость по сравнению с другими решениями. Если же Вам нужно защитить не только .NET код, то можно воспользоваться совместным решением компании ООО "Протекшен Технолоджи" (StarForce) и Microsoft. Также у этой компании легче всего купить решение чисто Microsoft.
Естественно было много рассказано для партнеров Майкрософт, в том числе о преимуществах для компаний-разработчиков, многое из рассказанного можно только услышать, и нигде нельзя прочитать. Также было рассказано о проблемах в новых инновациях Майкрософт (что поможет правильно их преодолевать). Были приглашены представители четырех компаний — партнеров Майкрософт, которые тоже рассказали немного интересного. Приглашение компаний на круглый стол становится уже хорошим правилом. В общем это событие требует посещения offline если не каждый раз, то через раз — точно. На этом буду заканчивать, хотя не упомянул о многом (например, о программе Microsoft SaaS Incubation Center — грандиозная, нужная и полезная вещь), да и вообще о переходе части сервисов в WEB облако.
Ну и по результатам мероприятия возникло три предложения для группы ISV компании Майкрософт.

Первое, это попробовать сделать возможным клиенту апгрейдить лицензию на софт поставляемый по ISV Royalty Licensing до нормальной лицензии у обычного реселлера. Эта задача видимо решается сложно технически, но зато станет очень большим преимуществом, снимет часть организационных вопросов и внутриполитических.
Второе касается Windows, которая пока не входит в ISV Royalty Licensing. Можно ее продавать по лицензии, когда под ней можно запускать только продукты Microsoft и самого разработчика. Это даже можно частично реализовать технически. Что позволит снизить цену и продавать действительно програмно-аппаратный комплекс разработчику, частично решит проблемы с возможностью включения в ISV Royalty Licensing — ведь это не полноценная операционная среда, а клиент в случае наличия пункта 1 тоже будет доволен.
Третье, это введение тарифа по программе SLPS с нулевой платой в месяц (только за факт активации, и за факт выдачи нового компилятора для ПО). Это позволит усилить безопасность, так как разработчики на этом тарифе смогут генерировать говий компилятор под каждое ПО, что видимо невозможно для версии Standart, а также большей популяризации, особенно среди начинающих разработчиков (ведь у них неизвестно когда и как и когда ПО начнет нормально продаваться, а платить в никуда хоть и 20$ — совсем не хочется).

Дешевая альтернатива iSCSI. Статья.

Никто не сталкивался с проблемой, когда на небольшом сервере или хуже того домашнем компьютере стоит много виртуальных машин, и не хватает места для размещения виртуальных жестких дисков? Особенно это актуально для дисков с данными, так, например, сервер WSUS требует винчестера минимум 10 Гб, и это при условии частого обслуживания и чистки, хотя 10Гб не хватит. А некоторые базы данных MS SQL занимают очень много места. И используются не часто, и редко, но нужны, а места много занимают, и MS SQL требует чтобы базы данных «лежали» только на локальном винчестере. Бывают и более сложные случаи, когда модернизация оборудования требует значительных затрат, хотя все устраивает, кроме нехватки свободного места. Ведь не секрет что со временем все программы и в особенности данные только «тяжелеют».
Вот в этом случае и могут помочь технологии управления системами хранения данных. Самая общеупотребительная на сегодня это iSCSI, или часто еще вспоминают FiberChannel. Но все эти технологии совсем не дешевые и при рассмотрении возможности перехода многие останавливаются на модернизации существующего сервера (часто просто купив новый). По мнениям некоторых экспертов еще не наступило время глобального перехода на системы хранения данных, хотя их преимущества очевидны. (И кстати при создании нового бизнеса обязательно нужно рассматривать эти технологии).
Но кроме дорогих технологий есть и более дешевые. Одну из них, а именно vblade (AoE –  ATA over Ethernet) с практической стороны и возможности реализации я попробовал рассмотреть в небольшой статье тут.
Как обычно жду Ваших замечаний и предложений. Также планирую сделать некоторые замеры производительности в разных режимах.

.NET Architecture Day. 22.09.2008. Отчет.

Сегодня прошло очередное мероприятие в рамках .NET Architecture Day. Точнее это была 2 часть этого мероприятия в виде лабораторной работы на тему: "Знакомство с новыми технологиями платформы обработки данных Microsoft". Были рассмотрены вопросы, теоретическая часть которых рассказывалась на семинаре, но только с практической стороны. Лабораторную работу сегодня проводил Антон Шепитько.
Сначало о грустном. Отдельно стоит отметить, как было организовано мероприятие. На самом мероприятии проблем в общем не возникало, все достаточно отлажено. Разве только компьютеров было на всех маловато, но все разместились. Но вот подготовка к мероприятию …, приглашений на мероприятие было выслано целых два. Первое не содержало ссылки на регистрацию, на следующий день правильно повторили. То, что само мероприятие было запланировано на понедельник тоже ничего хорошего. Можно конечно было подумать, что это специально, чтобы участников было поменьше :), но на самом деле просто компьютерный класс имеет очень плотное расписание, и несмотря на резервирование его заранее, не так все просто. Подтверждений на мероприятие было целых три! Первое не содержало место, где оно будет проводиться. Второе место и время содержало … но было и третье — устное. Был звонок, который сообщил, что мероприятий будет два, в связи с большим колличеством приглашенных. Одно сегодня, затем на следующий день точно такая же лабораторная работа. Как оказалось, вендор подтвердил регистрацию на 51 человека, а в классе всего 18 рабочих мест. В общем, несмотря на отвратительную организацию со стороны вендора, ему можно сказать спасибо — в итоге сможет поучаствовать больше народу.
Теперь о хорошем. Сама лабораторная работа очень полезная и неплохо знакомит с новыми технологиями. Но если Вы их совсем не знаете (например, если слова: "Variable query2 should be a query that executes a 3-table join between the authors, titles, and titleauthor tables. It should return only the columns au_id and title_id as an anonymous type" не побуждают Вас сразу написать код — будет очень сложно. Но даю подсказку. На самом деле на диске в виртуальной машине уже есть готовые примеры, и код можно посмотреть там, нужно лолько поискать. (Правда сразу их запустить не получится, так как нужно выполнять все последовательно, чтобы создать нужные базы данных). Ну и еще один совет: берите с собой жесткий диск или флешку (или ноутбук) со свободным местом 9 Гб — если захотеть, все можно унести домой и поиграться. По идее можно выложить все инструкции к лабораторным работам.
Также никто не мешает лабораторную работу выполнять не по намеченному плану и проверить в тестовой среде, тот код, который Вам пришел в голову во время выполнения работы. Первую часть рекомендую выполнять всем, если внимательно и вдумчиво подойти — прояснит многие моменты.
Ну и как обычно, на сессии вопросов и ответов можно решить свои проблемы. Естественно врядли кто сразу ответит на вопрос, а почему у меня этот код не работает, но вот на вопрос, какую технологию выбрать для решения той или иной задачи, будет рассмотрен со всех сторон.