Показаны сообщения с ярлыком DataBases. Показать все сообщения
Показаны сообщения с ярлыком DataBases. Показать все сообщения

суббота, августа 19, 2006

Шутки от MS SQL Server - 2

(по крайней мере, MS SQL 2005 так шутит)

Выяснилось, что даже при указании для некоторого NOT NULL поля таблицы значения по умолчанию в это поле нельзя записывать null.

Т.е., если поле col1 определено как NOT NULL default ('anystring'), то нельзя написать INSERT INTO (col0, col1) VALUES (@p0, @p2) и параметру @p2 присвоить null (DBNull.Value). Тут получится выкидыш-exception - низя в такое поле совать NULL. В этой ситуации поле нужно вовсе в списки не упоминать, тогда ему будет присвоено значение по умолчанию.

Как-то это неочевидно, а в BOL если и написано об этом, то где-то весьма далеко - специально искал, да не нашёл.

Шутки от MS SQL Server

(по крайней мере, SQL EveryWhere так шутит)

Запоминаю в таблице данные файла (имя и дату изменения), чтоб в дальнейшем повторно этот файл не обрабатывать. Фокус вылезает при извлечении запомненной даты и сравнении её с датой из файловой системы. Если файл не изменялся, результат такого сравнения - как у блондинки: то ли больше, то ли меньше. Выяснилось, что при сохранении пропадают сколько-то миллисекунд (округление такое, что ли?)... Пришлось изобретать округление до секунды и пользоваться такими округлёнными значениями.

public static DateTime RoundToSecond(DateTime date) {
           
return new DateTime(
            date.Year, date.Month, date.Day,
           date.Hour, date.Minute, date.Second);
}

четверг, июля 13, 2006

Встраиваемые СУБД

В проекте потребовалось сохранять промежуточные данные, чтоб потом их считывать. Можно, конечно, сериализовать и сохранять в файл (двоичный или xml), но подумалось, что попользоваться базой данных проще и привычней. База там, естественно, есть, однако это MS SQL Server, занятый своей собственной неслабой работой, поэтому сразу решил поискать чего-то встраиваемого в саму программу, небольшого размера и, желательно, бесплатного.

Вот результаты изысканий:

Vieka eSQL – бесплатная для любого применения, платить нужно только при использовании в продажных продуктах для мобильных девайсов. Для использования требуются библиотеки размером ок. 450 кб. Наследник SQLite, имеет минимальный набор типов, с небольшими базами работает быстро (при размерах в сотни мегабайт народ жалуется на тормоза). Имеет интерфейс с .NET, работает с SQL-92. База однофайловая. Требуются операции сжатия базы. Имеется пример, который получается изменять – бум смотреть в качестве кандидата.

db4o
– распространяется по GPL. Для использования требуются библиотеки размером ок. 860 кб. Имеется интерфейс с .NET 2.0 и .NETCF 2.0. Объектная база. Народ жалуется на задержки при открытии файла базы. База однофайловая. Мало какой-либо хорошей информации, хотя имеющиеся примеры работают.

SQL Server Everywhere Edition – пока что существует в виде CTP, но к концу года обещают выпустить релиз, да ещё и бесплатный. Для использования требуются библиотеки размером ок. 1.5 Мб. Имеется интерфейс с .NET 2.0 и .NETCF 2.0. Программная модель – как у SQL Server 2005. База однофайловая. Штука привлекательная, надо её поизучать на будущее.

VistaDB – продаётся за деньги, но лицензия позволяет распространять использующий базу продукт бесплатно. Для использования требуются библиотеки размером ок. 650 кб. Имеется интерфейс с .NET 2.0, работает с SQL-92. Также имеется интерфейс DDA – прямой доступ к данным, быстрая работа на низком уровне с таблицами, записями и т.д. Набор типов почти как у SQL Server. База однофайловая. Примеры работают, поддаются изменению.

среда, июня 28, 2006

Приколы SQL 2005.

При установке получил сообщение:
 
Could not get performance counter registry info for msftesqlFD for instance SQL2K5 due to the following error : The operation completed successfully
 
Хи-хи. 

воскресенье, октября 30, 2005

VistaDB 2.1 database for .NET has been released

This 2.1 update includes over 60 improvements, including new support for .NET 2.0 and Visual Studio .NET 2005. VistaDB is a small-footprint, embedded SQL database alternative to Jet/Access, MSDE and SQL Server Express 2005 that enables developers to build .NET 1.1 and .NET 2.0 applications. Features SQL-92 support, small 500KB embedded footprint, free 2-User VistaDB Server for remote TCP/IP data access, royalty free distribution for both embedded and server, Copy 'n Go! deployment, managed ADO.NET Provider, data management and data migration tools. Free trial is available for download.

Repost this to your blog and receive a FREE copy of VistaDB 2.1!

суббота, июля 09, 2005

Yukon

Поставил бету 3, пришедшую с 2005-й Студией. Нагрузил на него всё - счётчик трафика, SharePoint и проч.
Под SharePoint'ом задолбал вконец - памяти отъедает по 200-300 Мег, задумывается на 100% процессора на минуту-другую при простейших действиях. Мрак...
В итоге перенёс всё на старый добрый SQL 2000 sp3. Причём пришлось именно переносить - базы просто так через detach/attach уже не переставляются. За хрен так сделали, неясно. Как там другая функциональность, даже не пробовал.
Таблицы свои (трафик и др.) перегнал через DTS, а таблицы Sharepoint'а как-то хитро сделаны, что новый DTS обломался - пришлось новые базы заводить. Благо, никакого особого содержимого у меня там не было. Но целый вечер, считай, провозился.

суббота, июня 04, 2005

PostgreSQL continued...

Потребовалось перенести имеющуюся базу на другой компьютер. Точнее, на другую ось на этом же компьютере. Оказалось весьма нетривиальной забавой:

1. Установил экземпляр СУБД на новой системе.
2. Придушил сформированный сервис (установить его с подключением к имеющейся базе не удалось) - отключил автозапуск.
3. Сформировал новый сервис с подключением к имеющейся базе.
4. Наставил права для пользователя postgres на все каталоги data имеющейся базы (в т.ч. по связям на другие диски) - практически все права.

В итоге стала работать запись данных tmeter, но пришлось отключить запись hosts - загрузка процессора возрастает со страшной силой. Никаких сообщений по этому поводу не обнаруживается.

Посмотрю ещё, как будет форум работать, а то придётся обратно отползать на MS SQL (благо, есть годовая триалка Yukon'а).

Форум никак не работает - но не из-за PostgreSQL, а из-за .NET b2, похоже.

Так и перелез обратно на Yukon - целый день, блин, провозился. DTS 2005 пока немного освоил - изматерился. Кривая пока штуковина. Зато сам сервер явно лучше стал - и ресурсов жрёт поменьше, и побыстрее работает (строго на глаз).

пятница, марта 04, 2005

PostgreSQL

Любопытная системка. Есть, конечно, недоработки, но не смертельные.
OleDB и .NET провайдеры работают нормально. Привинтил базу к счётчику трафика tMeter. Нормально работает, кроме одной таблицы, traffic. Написал разработчику, пускай правит.
Надо бы теперь отчёт соорудить по таблице packets. На досуге для тренировки какой-нить заняться надо.

среда, августа 25, 2004

MS SQL Server 2005

Результаты краткого изучения

Объект:

Дистрибутив en_SQL_2005_DEV_Beta2_852.02, полученный с сайта http://msdn.microsoft.com.
Выполнена полная установка сервера на компьютеры с различными конфигурациями (Celeron 667 MHz/384 Mb и Pentium 4 2.4 GHz/640 Mb) под управлением Windows 2003.
Установка выполнена в режиме Side-by-side с сервером MS SQL Server 2000.

Общие впечатления:

  1. Сервер базы данных нормально функционирует на обеих конфигурациях на отдельских задачах (загрузка данных в хранилище). Быстродействие нуждается в специальном измерении.
  2. Средства управления и разработки на базе Whidbey функционируют также на обеих конфигурациях, однако работа с ними на Celeron 667 практически невозможна из-за низкой скорости.
  3. Базы предыдущей версии СУБД подключаются (attach…) и нормально функционируют под управлением новой версии.

Database Engine

  1. Управление и разработка производится через MS SQL Server Management Studio.
  2. Все программные объекты (триггеры, хранимые процедуры, пользовательские типы) могут быть написаны на .NET языках.
  3. Расширена поддержка XML – введён соответствующий тип данных, документы можно хранить в полях таблиц. Поддерживается язык запросов XQuery.
  4. Объектная модель Distributed Management Objects (DMO) заменяется (постепенно) на System Management Objects (SMO). Чем отличаются, информации пока нет. Можно, в принципе, установить различия рассматриванием библиотек в Студии.
  5. Загрузчик данных (без обработки OLAP-объектов) отрабатывает без ошибок ( в т.ч. блок создания объектов базы через DMO).

DTS

Сервисы изменены полностью. Для утешения добавлена поддержка пакетов из версии 2000, которые исполняются в неизменном виде, а также могут быть конвертированы (ограниченно) в новый формат.

Архитектура

  1. Две области data flow и control flow. Хорошо это или плохо – сразу сказать сложно. Непривычно.

Объекты и программирование

  1. Все существовавшие компоненты переписаны на .NET, функциональность часто расширена, иногда заметно изменена. Добавлено много новых.
  2. Каждый из объектов может читать данные из нескольких источников и писать в несколько источников.
  3. Добавлена возможность программировать собственные элементы (провайдеры данных, преобразователи и т.д.). Для написания компонентов используются средства .NET.

Разработка и распространение

  1. Для работы с пакетами (проектирование, модификация и т.п.) используется BI Development Studio – пакет на базе Visual Studio. Разработка идёт в рамках проектов (как и всё в Студии), коллективная работа, контроль версий, отладка и т.д.
  2. Вместо средств WSH (точнее, наряду с ними) можно использовать «макросы» на VB.NET (штатное средство Студии), значительно более мощное средство.
  3. Хранятся пакеты в файлах формата XML и в таблице базы данных на сервере.
  4. Для установки пакетов и изменений к ним генерится специальная утилита (wizard).

OLAP

Движок (Engine)

  1. Добавлены триггеры (синхронное исполнение хранимых процедур для проверок значений и выдачи предупреждений) и трассировщики (trace) для асинхронного измерения производительности и разрешения проблем.
  2. Введена возможность использовать xml-описания объектов базы для их создания, модификации и т.п. (Называется это дело почему-то скриптами).
  3. Можно установить несколько экземпляров на одну машину (как SQL Server).

Средства разработки

  1. Используется BI Development Studio – пакет на базе Visual Studio. Разработка идёт в рамках проектов (как и всё в Студии), коллективная работа, контроль версий, отладка и т.д.
  2. Все визарды и редакторы (кубов, измерений и др.) переработаны, интегрированы в Студию. Все возможности BI accelerator’а для OLAP 2000 входят в стандартные возможности (насколько запомнилось).
  3. Добавлено много шаблонов для различных объектов (cubes, dimensions, key performance indicators (KPIs), calculated members, named sets, calculated cells, actions, and Multidimensional Expressions (MDX) queries). Можно создавать собственные шаблоны и сохранять их в xml-формате.

Программирование

  1. Полная интеграция с .NET (поддержка XML и SOAP, языков .NET в триггерах и хранимых процедурах, управляемый доступ для администрирования и клиентский доступ).
  2. Decision Support Objects (DSO) заменён на Analysis Management Objects (AMO). DSO пока тоже поддерживается.
  3. Введён Object Definition Language (ODL), основанный на xml-синтаксисе, позволяющий описывать объекты и манипулировать ими.

Dimensions

  1. Базируются на атрибутах (соответствуют колонкам таблицы).
  2. Можно иметь множественные иерархии в одной оси (напр.,
    календарное время и фискальное время).
  3. Поддерживаются отношения многие-ко-многим между осями и
    фактами через промежуточную таблицу.