Итак, вторая половина дня началась с докладов Диего Вега (blog | twitter) про будущее Entity Framework и Вячеслава Красовского (twitter) про внутреннее устройство SQL Azure.
[More]
На самом деле разработчики SQL Azure Federations обещали что выпустят продукт к концу 2011 года, так что сюрприза особого и нет. Но на, проходящем сейчас в Сиэтле, PASS саммите официально анонсировали что SQL Azure Federations войдёт в состав SQL Azure Q4 2011 Service Release, который будет выпущен до конца этого года. Кроме Federations в этом обновлении будет увеличен лимит базы данных с 50 Гб до 150 Гб, обновится портал разработчика, и появится возможность устанавливать collation для базы данных.
[More]
В этом посте я уже не буду рассказывать о подготовке к конференции, о том как мы встречали докладчиков или проверяли аппаратуру. Пока ещё свежи воспоминания я постараюсь в деталях описать то, что происходило непосредственно на конференции, иногда показывая что-же происходило за кулисами.
Началась конференция, как и следовало с регистрации. Все сотрудники компании DCT находились на конференции и всячески помогали, за что им отдельное спасибо. Большая часть участников пришла в первые пол-часа, но участники подходили в течении всей конференции, а некоторые регистрировались прямо на месте.
[More]
Если в двух словах, то это было круто :) Очень круто! В первый раз я принимал участие в большой конференции не как участник, а как организатор. Скажу сразу, что это было нелегко, но оно того стоило. Я просто не могу передать то ощущение, которое испытываешь глядя в лица участников и понимая, что всё удалось, всё получилось как нельзя лучше и что никто не жалеет, что в выходной день он находится именно здесь, на UnetaPlus.
[More]
Друзья! Это свершилось! Выходит в свет второе издание мега-книги SQL Server MVP Deep Dives! И это не дополнение первого, а полностью новая книга. Первая книга вызвала огромный интерес в своё время благодаря своему формату (я тоже с удовольствием прочёл её). Формат второй книги остался тот-же: SQL Server MVP со всего мира объединились и каждый написал главу для этой книги.
[More]
FileTable основывается на функционале FILESTREAM, появившемся в 2008-й версии. Давайте быстро вспомним что он из себя представляет. FILESTREAM позволяет хранить файлы в базе данных, при этом сохраняя возможность потоковой работы с файлами. Таким образом мы поддерживаем ссылочную целостность базы данных и файловой системы. Более подробно можно прочитать здесь - Введение в FILESTREAM. На презентациях и в теории всё выглядит очень красиво, но на самом деле, если попробовать использовать FILESTREAM сталкиваешься со множеством ограничений, да и сам код работы с подобными файлами красотой не блещет (открываем транзакцию в БД, получаем дескриптор файла и т.д.). Одним из ограничений FILESTREAM была синхронизация БД и файловой системы. Удаление записи в базе приводило к удалению файла (тут всё ок), а вот удаление файла не приводило к удалению записи и приводило к ошибке при обращении к этой записи. Кроме этого недостатка, файлы на файловой системе получали совершенно нечитаемые имена и находились в папке, указанной при создании базы данных. На самом деле FileTable не устраняет эти недостатки FILESTREAM, но успешно позволяет абстрагироваться от них. Суммируя всё вышесказанное, FileTable это не замена, а скорее надстройка над FILESTREAM. Впрочем вы это и сами увидите по ходу изложения.
[More]
Постраничный вывод данных – это тот функционал, который встречается чуть-ли не на каждом информационном сайте, и реализация подобной выборки зачастую не так сложна. Но всё же в SQL Server, до версии Denali, не было нормальной поддержки таких сценариев. Стандартным подходом реализации постраничной выборки в SQL Server был запрос с функцией ROW_NUMBER. Суть этого подхода в том, что запрос пробегает по всем строкам набора и нумерует их от единицы до номера конечного элемента. Потом по этим номерам и делается выборка по диапазону, например мы получаем вторые 10 записей набора (2-я страница). Но у этого подхода есть один существенный минус – каждый раз, даже если вам нужно выбрать 10 первых записей из таблицы в миллион записей, запрос будет пробегать миллион записей. Чем больше данных, тем ниже перфоманс. Те кто уже боролся с подобными проблемами меня поймут. Бороться можно и нужно, но это сложно. В SQL Server Denali появляется поддержка таких выборок на уровне обработчика запросов, но всё далеко не так хорошо, как может показаться на первый взгляд. Впрочем, обо всём по-порядку.
[More]
Итак, не буду писать много слов. Стал доступен 3-й CTP всеми нами любимого сиквела - SQL Server Code Name "Denali" CTP3. Ставим, Пробуем, Смотрим!
[More]
SQL Profiler, наверное, самый часто используемый инструмент SQL Server после Management Studio. И многие разработчики пользуются им для поиска тяжёлых запросов или анализа того, что происходит в системе. Чаще всего мы смотрим на трейс прямо в профайлере, пытаясь найти интересующие нас данные. Иногда мы добавляем некоторые условия и группировки для того, чтобы выделить только то, что нам действительно важно. Но это не очень эффективно. По-настоящему эффективный анализ рабочей нагрузки лежит за пределами профайлера.
[More]
На прошлой неделе я написал первый пост о шардинге в SQL Azure, в котором я рассказал о том, что такое шардинг, почему он так важен для масштабирования, и почему SQL Azure является хорошим выбором хранилища данные, если мы собираемся использовать шардинг. Со своей стратегией pay as you go, SQL Azure подходит как нельзя лучше в качестве хранилища данных, но этого мало. Организация шардинга дело непростое, особенно если ваша база данных и ваше приложение изначально не было к этому готово. В этом случае придётся много чего ломать и перестраивать заново. Операции с данными довольно сложны и весь функционал работы с масштабируемым хранилищем приходится писать самому. Но скоро эта ситуация должна измениться. Это произойдёт с приходом SQL Azure Federations.
[More]