26 марта 2003 г.
Сравнение SQL Server 2000 с Oracle 9i
Автор: Alexander Chigrik
Перевод: Шахов Сергей
В группах новостей участники часто спрашивают о сравнении Oracle и Microsoft SQL Server. В этой статье я сравню SQL Server 2000 с Oracle 9i в плане цены, производительности, поддержки на разных платформах, диалектов SQL и ограничений продуктов.
SQL Server 2000 работает только на Windows-платформах , включая Windows 9x, Windows NT, Windows 2000 и Windows CE. В сравнении с SQL Server 2000, Oracle 9i Database поддерживается на всех известных платформах, включая Windows-платформы , AIX-системы, Compaq Tru64 UNIX, HP 9000 Series HP-UX, Linux Intel, Sun Solaris и т.д.
Чтобы установить SQL Server 2000, Вы должны иметь Intel или совместимую платформу и следующее оборудование:
| Оборудование |
Требования |
| Процессор |
Pentium 166 MHz |
| Память |
32
MB RAM
(минимум для Desktop Engine), |
| Дисковое пространство |
270
MB (полная
установка), |
Oracle 9i поддерживается на Intel или совместимых платформах, AIX-системах, Compaq Tru64 UNIX, HP 9000 Series HP-UX, Linux Intel, Sun Solaris и т.д.
Для установки Oracle 9i на Intel или совместимую платформу, Вы должны иметь следующее оборудование:
| Оборудование |
Требования |
| Процессор |
Pentium 166 MHz или выше |
| Память |
RAM:
128 MB (256 MB рекомендуется) |
| Дисковое пространство |
140
MB на
системном диске |
Для установки Oracle 9i на UNIX системы, такие как AIX-системы, Compaq Tru64 UNIX, HP 9000 Series HP-UX, Linux Intel и Sun Solaris, Вы должны иметь следующее оборудование:
| Оборудование |
Требования |
| Процессор |
Минимум 512 MB RAM |
| Размер Swap |
Минимум 2 x RAM или 400 MB, смотря что больше |
| Дисковое пространство |
4.5 GB |
SQL Server 2000 поставляется в шести редакциях: Enterprise, Standard, Personal, Developer, Desktop Engine и SQL Server CE (версия для Windows CE) и требует следующие программы:
| Операционная система |
Enterprise Edition |
Standard Edition |
Personal Edition |
Developer Edition |
Desktop Engine |
SQL Server CE |
| Windows CE |
Нет |
Нет |
Нет |
Нет |
Нет |
Да |
| Windows 9x |
Нет |
Нет |
Да |
Нет |
Да |
Нет |
| Windows NT 4.0 Workstation с Service Pack 5 |
Нет |
Нет |
Да |
Да |
Да |
Нет |
| Windows NT 4.0 Server с Service Pack 5 |
Да |
Да |
Да |
Да |
Да |
Нет |
| Windows NT 4.0 Server Enterprise Edition с Service Pack 5 |
Да |
Да |
Да |
Да |
Да |
Нет |
| Windows 2000 Professional |
Нет |
Нет |
Да |
Да |
Да |
Нет |
| Windows 2000 Server |
Да |
Да |
Да |
Да |
Да |
Нет |
| Windows 2000 Advanced Server |
Да |
Да |
Да |
Да |
Да |
Нет |
| Windows 2000 DataCenter |
Да |
Да |
Да |
Да |
Да |
Нет |
| Windows XP Professional |
Нет |
Нет |
Да |
Да |
Да |
Нет |
Oracle 9i Database поставляется в трех редакциях: Enterprise, Standard и Personal и требует следующие программы:
| Платформа |
Версия операционной системы |
Исправления |
| Windows |
Windows NT 4.0 |
Service Pack 5 |
| Windows |
Windows 2000 |
Service Pack 1 |
| Windows |
Windows XP |
Не нужны |
| AIX |
AIX 4.3.3 |
Maintenance
Level 09 иIY24568, |
| AIX |
AIX 5.1 |
AIX
5L release 5.1 ML01+ (IY22854), |
| Compaq Tru64 UNIX |
Tru64 5.1 |
5.1 patchkit 4 |
| Compaq Tru64 UNIX |
Tru64 5.1A |
5.1A patchkit 1 |
| HP-UX |
HP-UX version 11.0 (64-bit) |
Sept.
2001 Quality Pack, PHCO_23792, |
| Linux |
SuSE
Linux Enterprise Server 7 |
Не нужны |
| Sun Solaris |
Solaris
32-Bit 2.6 (5.6), 7 (5.7) |
Не нужны |
| Sun Solaris |
Solaris 64-Bit 8 (5.8) |
Update 5 |
Очень сложно сравнивать производительность между SQL Server 2000 и Oracle 9i Database. Производительность Ваших баз данных зависит больше от квалификации разработчиков и администратора баз данных чем от поставщика СУБД. Вы можете использовать любую из этих РСУБД для построения стабильных и эффективных систем. Можно определить типичные транзакции, такие как используемые в системах управления запасами, системах бронирования на авиалиниях и банковских системах. После определения этих типичных транзакций, можно запустить их под разными системами управления базами данных, работающих на различном оборудовании и программных платформах.
Transaction Processing Performance Council (TPC.Org) независимая организация, точно определяющая типичные транзакции (транзакции, используемые в системах управления запасами, системах бронирования на авиалиниях и банковских системах) и некоторые общие правила, которым эти транзакции должны удовлетворять.
TPC производит контрольные задачи, измеряющие обработку транзакций и производительность баз данных в показателях количества транзакций, посланных системе и обработанных базой данных за единицу времени и т.д., транзакций в секунду или транзакций в минуту.
TPC создает спецификации на многие тесты. Есть TPC-C, TPC-H, TPC-R, TPC-W и некоторые старые тесты, такие как TPC-A, TPC-B и TPC-D. Наиболее популярный тест - TPC-C (OLTP тест).
На момент написания этой статьи, SQL Server 2000 удерживал высшие результаты TPC-C по производительности на Distributed Partitioned Views кластерных системах. См. Top Ten TPC-C by Performance Version 5 Results
На момент написания этой статьи, SQL Server 2000 удерживал высшие результаты TPC-C соотношению цена/производительность. См . Top Ten TPC-C by Price/Performance Version 5 Results
Примечание. Из-за того, что в действительности большинство организаций не используют очень большие базы данных, тот факт что SQL Server 2000 выигрывает TPC-C тесты на самом деле не имеет значения для большей части компаний.
Одно из основных преимуществ Microsoft SQL Server 2000 в сравнении с Oracle 9i Database это то, что SQL Server дешевле. Другое преимущество SQL Server в том, что Microsoft включает Online analytical processing (OLAP) и Data Mining как стандартные функции в SQL Server 2000 Enterprise Edition. Таким образом, Вы можете сэкономить до четырех раз с SQL Server 2000 Enterprise Edition, если используете OLAP и Data Mining.
Сравнение цен ниже было основано на статье Oracle and SQL Server 2000 Price Comparison от Microsoft.
Сравнение цен на SQL Server 2000 Standard Edition и Oracle9i Standard Edition:
| Число процессоров |
Oracle9i Standard Edition |
SQL Server 2000 Standard Edition |
| 1 |
$15,000 |
$4,999 |
| 2 |
$30,000 |
$9,998 |
| 4 |
$60,000 |
$19,996 |
| 8 |
$120,000 |
$39,992 |
| 16 |
$240,000 |
$79,984 |
| 32 |
$480,000 |
$159,968 |
Сравните цены на SQL Server 2000 Enterprise Edition (включающий OLAP и Data Mining) и Oracle9i Enterprise Edition с OLAP и/или Data Mining:
| Число процессоров |
Oracle9i Enterprise Edition |
Oracle9i Enterprise Edition с OLAP или Data Mining |
Oracle9i Enterprise Edition с OLAP и Data Mining |
SQL Server 2000 Enterprise Edition |
| 1 |
$40,000 |
$60,000 |
$80,000 |
$19,999 |
| 2 |
$80,000 |
$120,000 |
$160,000 |
$39,998 |
| 4 |
$160,000 |
$240,000 |
$320,000 |
$79,996 |
| 8 |
$320,000 |
$480,000 |
$640,000 |
$159,992 |
| 16 |
$640,000 |
$960,000 |
$1,280,000 |
$319,984 |
| 32 |
$1,280,000 |
$1,920,000 |
$2,560,000 |
$639,968 |
Примечание. Это не полное сравнение цен на SQL Server 2000 и Oracle 9i Database, а только краткое. Вы можете получить скидки, и цены могут возрасти или уменьшиться в будущем. Свяжитесь с Microsoft и Oracle чтобы получить больше информации о ценах на их продукты.
Оба, SQL Server 2000 и Oracle 9i Database поддерживают ANSI SQL-92 начального уровня и не поддерживают ANSI SQL-92 среднего уровня. В разделе Сравнение возможностей я хотел бы произвести краткое сравнение Transact- SQL с PL/ SQL и показать некоторые лимиты SQL Server 2000 и Oracle 9i.
Диалект языка SQL поддерживаемый Microsoft SQL Server 2000 называется Transact-SQL (T-SQL). Диалект языка SQL поддерживаемый Oracle 9i Database называется PL/SQL. PL/SQL намного более мощный язык чем T-SQL. Здесь краткое сравнение PL/SQL и T-SQL:
| Признак |
PL/SQL |
T-SQL |
| Индексы |
B-Tree
индексы, |
B-Tree индексы |
| Таблицы |
Реляционные
таблицы, |
Реляционные
таблицы, |
| Триггеры |
BEFORE
триггеры, |
AFTER
триггеры, |
| Процедуры |
PL/SQL операторы, |
T-SQL операторы |
| Массивы |
Поддерживаются |
Не поддерживаются |
Здесь перечислены некоторые лимиты SQL Server 2000 и Oracle 9i :
| Признак |
SQL Server 2000 |
Oracle 9i Database |
| длина имени базы данных |
128 |
8 |
| длина имени столбца |
128 |
30 |
| длина имени индекса |
128 |
30 |
| длина имени таблицы |
128 |
30 |
| длина имени представления |
128 |
30 |
| длина имени хранимой процедуры |
128 |
30 |
| длина индекса |
900 |
749 |
| максимум колонок в индексе |
16 |
32 |
| максимальная длина поля char() |
8000 |
2000 |
| максимальная длина поля varchar() |
8000 |
4000 |
| максимум колонок в таблице |
1024 |
1000 |
| максимальная длина записи в таблице |
8036 |
255000 |
| максимальный размер запроса |
16777216 |
16777216 |
| вложенные подзапросы |
40 |
64 |
| размер строковой константы в SELECT |
16777207 |
4000 |
| размер строковой константы в WHERE |
8000 |
4000 |
Неверно считать, что SQL Server 2000 лучше чем Oracle 9i или наоборот. Оба продукта могут быть использованы для построения стабильных и эффективных систем и стабильность и эффективность Ваших приложений и баз данных зависит больше от квалификации разработчиков и администратора баз данных чем от поставщика СУБД. Но SQL Server 2000 имеет некоторые преимущества в сравнении с Oracle 9i и наоборот.