(Возврат на основную страницу)

Содержание номера за Май 2002 

Editorial

Большая польза от масштабирования малых систем

Майкл Оути (Michael Otey)

В индустрии баз данных понятия «масштабируемость» и «большая система»стали почти неразлучными.

Приводя последние результаты тестов в доказательство масштабруемости своих продуктов, Microsoft и другие производители имеют в виду масштабирование систем высокого уровня (так называемых high-end-систем), то есть систем, способных обрабатывать огромные приложения и громадные объемы транзакций. Но реальное значение понятия «масштабируемость» — способность функционировать в самых разнообразных условиях, подразумевающих необходимость как больших, так и малых систем.

Вся шумиха вокруг тестирования притягивает наше внимание к масштабируемости систем высокого уровня, где в номинации кластерных систем результаты Microsoft остаются недосягаемыми, но битва с Oracle и IBM DB2 за первенство среди односерверных систем продолжается до сих пор. (Такая ситуация сложилась, в основном, из-за того, что односерверные системы на основе UNIX, показавшие рекордные результаты, намного больше и быстрее любых аналогичных систем на основе аппаратной платформы Intel, поддерживающих SQL Server.) Однако масштабируемость систем нижнего уровня не менее важна. Но если присутствие Microsoft в мире масштабируемых систем высокого уровня окружено всяческой помпой, то рынок БД нижнего уровня был завоеван СУБД SQL Server 2000 для Windows CE очень тихо, почти украдкой.

SQL Server CE — СУБД, полностью совместимая с SQL на уровне синтаксиса. Она занимает всего 4 Мбайт и прекрасно помещается в памяти сверхмобильных карманных устройств типа iPAQ Pocket PC от Compaq или HP Jornada, созданного Hewlett-Packard. В отличие от SQL Server 2000 Personal Edition, совместимого с Windows 9x и основанного на том же исходном коде, что и SQL Server 2000 Standard Edition, SQL Server CE использует другую программную базу, совместимую с КПК на основе процессора Intel StrongARM. Неожиданно разработка приложений для платформы SQL Server CE оказалась весьма знакомым процессом. Такие приложения можно создавать при помощи языков eMbedded Visual Basic (eVB) или eMbedded Visual C++ (eVC++) из среды Microsoft eMbedded Visual Tools (eVT), предназначенной для разработки ПО для КПК. Эти языки и внешне, и в использовании напоминают своих «старших братьев», VB и VC++. Кроме того, Compact Framework распространяет область применения управляемых приложений .NET, написанных на Visual Basic .NET, C# и VC++, на уровень карманных устройств.

На уровне устройства приложения для SQL Server CE работают как автономные приложения БД. Но, что важнее для предприятия, эти приложения могут работать и в составе распределенного приложения БД. Это приложение синхронизирует с центральной БД, работающей на сервере, изменения, вносимые на распределенных мобильных устройствах, для чего используется репликация сведением. Все мобильные устройства выполняют свои функции в автономном режиме, периодически синхронизируя новые данные с данными центрального сервера во время подключения к базовому блоку в офисе.

Масштабирование SQL Server CE на уровне КПК позволяет добиться мобильности приложений и вычислительных ресурсов, не достижимой при помощи СУБД, ориентированных на работу на серверах. Например, приложения для SQL Server CE, работающие на карманных устройствах, позволят коммивояжерам компании размещать заказы, следить за ценами и котировками, что, в свою очередь, позволит им вести продажи и обслуживать клиентов на местах, не таская с собой ноутбук. Хотя для многих компаний масштабирование крупных систем имеет большое значение, масштабирование с использованием маленьких устройств открывает дверь к новым возможностям в коммерции. Таким образом, сказанное выше позволяет считать SQL Server CE мощным средством масштабирования SQL Server на уровне небольших БД.

DB Design & Warehousing

Копирование БД с сервера на сервер

Рагул Шарма (Rahul Sharma)

несколько методов копирования БД.

Метод 1 (самый быстрый): отсоедините файлы БД от исходного сервера и присоедините ихк целевому серверу

Метод 2: использование старой доброй службы DTS

Метод 3: создайте схему и «закачайте» в нее данные при помощи массового копирования/вставки

Метод 4, традиционный: копирование — восстановление

Метод 5: копирование с помощью распределенных запросов

И снова о присоединении и отсоединении БД

Энди Уоррен (Andy Warren)

Возможность присоединить и отсоединить БД — одна из самых удобных функций SQL7/2K.

Она достаточно хорошо работала и в SQL7, но SQL2K пошел еще дальше: в нем к Enterprise Manager был добавлен изящный интерфейс, позволяющий просматривать структуру файлов и выбирать нужные. Это позволяет сэкономить массу времени, которое уходило на «набивку» имен файлов в Query Analyzer. Здесь мы рассмотрим пару новых моментов.

Первый из них — всем известное ограничение процедуры sp_attach_db, которая обрабатывает не более 16 имен файлов. Лично я думаю, что, если у вас больше 16 файлов, это по любому слишком много, тем не менее некоторая гибкость здесь была бы удобной. Реально такая гибкость имеется, поскольку в основе этого ограничения процедуры лежит лишь ограничение на число параметров, которое можно запро-граммировать для нее (их, естественно, 16). Если внимательно прочитать справочный материал в BOL, легко заметить, что присоединить более 16 файлов все-таки можно при помощи оператора Create Database с параметром For Attach. Вероятно, это не самый важный вопрос в мире SQL, но думаю он стоит времени, потраченного на его изучение.

Programming

Хранимые процедуры и кэширование

Брайан Келли (Brian Kelley)

Хранимые процедуры — одно из мощнейших средств повышения производительности, встроенных в SQL Server.

SQL Server способен кэшировать план исполнения процедуры для его повторного использования в дальнейшем. Несмотря на потрясающие улучшения в кэшировании планов исполнения произвольных запросов SQL, хранимые процедуры SQL Server обрабатывает все же более эффективно, поскольку они являются объектами БД, на которые можно ссылаться. Однако использование неподходящих методик для создания хранимых процедур не позволяет SQL Server находить кэшированные планы исполнения при первоначальном поиске и даже вызывает многократную перекомпиляцию этих процедур, приводя, таким образом, к неожиданным потерям производительности. В этой статье мы рассмотрим:

Performance

Учимся использовать процедуру DBCC SHOWCONTIG

Дин Томпсон (Dean Thompson)

Процедура DBCC SHOWCONTIG — полезное средство, позволяющее получить о системе больше сведений, чем видно на первый взгляд. Честно говоря, терминология SQL Server Books Online совершенно не проясняет этот момент.

Возможно, одна из самых значительных проблем производительности БД — фрагментация данных таблиц. В качестве примера можно привести предметный указатель в конце большой книги. Одна запись такого указателя может ссылаться на несколько страниц, разбросанных по всему тому, и вам потребуется внимательно просмотреть каждую из них для поиска нужной информации. Это значительно отличается от указателя элек-тронной телефонной книги, в которой данные хранятся упорядочено. В результате обычного запроса на имя «Jones» может быть выдано несколько страниц информации, но данные на них будут упорядочены.

В случае с БД исходное представление данных больше соответствует телефонной книге, а конечное — журналу. Таким образом, нам иногда приходится сортировать данные для их упорядочения.

Other

Реализация переноса журнала SQL Server на языке Visual Basic

Дин Томпсон (Dean Thompson)

Перенос журнала (Log Shipping) — это средство для восстановления после аварий (Disaster Recovery, DR), которое позволяет постоянно держать наготове «горячую» резервную копию.

В сущности, при любой аварии у вас всегда будет под рукой резервная копия с относительно актуальной информацией для восстановления SQL Server и БД. Если БД критична для бизнеса, как в центре по обработке звонков, перенос журнала дает уверенность, что внезапная авария не остановит бизнес надолго.

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

Работаем с ADOX

Рамеш Баладжи и Скотт Митчелл (Ramesh Balaji, Scott Mitchell)

ADO, как известно, используется для доступа к БД (или более универсальным хранилищам данных). Действия, выполняемые во время работы с БД при помощи ADO, можно классифицировать так:

ADO в основном используется для манипулирования данными: вставки, обновления, удаления и исполнения запросов, а для определения данных, допустим, для создания таблиц, индексов, пользователей и групп, обычно служат соответствующие операторы SQL, исполняемые посредством соединений ADO или объектов Command. Рассмотрим, например, такую задачу: как создать таблицу БД посредством оператора SQL (скажем, в странице ASP)? В ADO нет объектов для исполнения действий, связанных со схемой данных, пользователей и других сущностей.

В ADO версии 2.1 Microsoft был предоставлен ряд новых объектов, выполняющих действия, связанные со схемой. Эти объекты получили название ADO Extensions (ADOX). ADOX — это объектная модель, в которую входит набор объектов, позволяющих выполнять действия, связанные с определением данных. Если у вас еще нет ADO 2.1 или выше, можно загрузить последнюю версию (бесплатно) по адресу: http://www.microsoft.com/data/download.htm. Просто за-грузите последнюю версию MDAC SDK.

Ниже мы рассмотрим примеры использования ADOX для создания БД Access, таблицы и запроса.

(Возврат на основную страницу)

Hosted by uCoz