SQL Server и Oracle, какой лучше с точки зрения масштабируемости? [закрытый]

typedef typename Tail::inUnion dummy;

Однако я не уверен, что реализация inUnion верна. Если я правильно понимаю, этот класс не должен быть создан, поэтому вкладка «fail» никогда не будет автоматически терпеть неудачу. Возможно, было бы лучше указать, находится ли тип в объединении или нет с простым булевым значением.

template  struct Contains;

template 
struct Contains >
{
    enum { result = Contains::result };
};

template 
struct Contains >
{
    enum { result = true };
};

template 
struct Contains
{
    enum { result = false };
};

PS: Посмотрите на Boost :: Variant

PS2: посмотрите на typelists , особенно в книге Андрея Александреску: Modern C ++ Design

10
задан Bill the Lizard 8 August 2012 в 19:44
поделиться

9 ответов

Я работал DBA на Oracle (хотя несколько лет назад), и я использую MSSQL экстенсивно теперь, хотя не как формальный DBA. Мой совет состоял бы в том, что в подавляющем большинстве случаев и встретит все, что можно бросить в них и проблемы производительности, будет намного более зависеть от проектирования баз данных и развертывания, чем базовые характеристики продуктов, которые в обоих случаях являются абсолютно, и совершенно твердый (MSSQL является лучшим продуктом, который MS делает по многому мнению народов, так не позволяйте обычному восприятию MS ослепить Вас на этом).

Самостоятельно я склонялся бы к MSSQL, если Ваша система не будет очень большой и действительно уровень предприятия (крупное число пользователей, несколько 9's время работы и т.д.) просто, потому что, по моему опыту, Oracle склонна требовать, чтобы более высокий уровень знания DBA и обслуживания, чем MSSQL вытащил лучшее из него. Oracle также склонна быть более дорогой, и для начального развертывания и в стоимости для найма DBAs для него. OTOH при рассмотрении корпоративной системы затем Oracle, имел бы преимущество, не в последнюю очередь потому что, если можно предоставить его, их поддержка является первоклассной.

3
ответ дан 3 December 2019 в 13:56
поделиться

Я должен согласиться с теми, кто сказал, что дизайн был более важным.

Я работал со сверхбыстрыми и супер медленными базами данных многих различных разновидностей (абсолют, худший являющийся базой данных Oracle, но это не был отказ Oracle). Дизайн базы данных и как Вы решаете индексировать его и разделить его и запрос, это намного больше имеет отношение к масштабируемости, чем, является ли продукт с Сервера MSSQL или Oracle.

Я думаю, что можно более легко найти больше Oracle dbas с опытом базы данных терабайта (выполняющий большую базу данных, специальность точно так же, как знание специфического аромата SQL), но это могло зависеть от местности.

3
ответ дан 3 December 2019 в 13:56
поделиться

Это также зависело бы от того, что является Вашим приложением, предназначенным для. Если бы это использует, только Вставляет с очень немногими обновлениями, то я думаю, что MSSQL был бы более масштабируемым и лучше с точки зрения производительности. Однако, если у Вас есть много обновлений, то Oracle была бы увеличение масштаба лучше

0
ответ дан 3 December 2019 в 13:56
поделиться

Или Oracle или MSSQL масштабируются / работают, лучше вопрос № 15. Модель данных является первой, делают - это или повреждение - это объект независимо от того, если Вы выполняете Oracle, MSSQL, Informix или что-либо еще. Структура модели данных, какие applicaiton, как это получает доступ к дб и т.д., который платформа Ваши разработчики знает достаточно хорошо для предназначения для большой системы и т.д., являются первыми вопросами, которые необходимо задать сами.

4
ответ дан 3 December 2019 в 13:56
поделиться

люди оракула скажут Вам, что оракул является лучшим, SQL-сервером peopele, скажет Вам, что SQL-сервер лучше. я говорю, что они масштабируют в значительной степени то же. используйте то, что Вы знаете лучше. у Вас есть базы данных там, которые являются тем размером на оракуле, а также SQL-сервере

1
ответ дан 3 December 2019 в 13:56
поделиться

Я очень сомневаюсь, что Вы собираетесь получить объективный ответ на тот конкретный вопрос, пока Вы не сталкиваетесь ни с кем, который реализовал ту же базу данных (схема, данные, и т.д.) на обеих платформах.

Однако учитывая тот факт, что можно найти миллионы счастливых пользователей обеих баз данных, осмелюсь сказать, это не слишком много фрагмента, чтобы сказать, что любой масштабируется очень хорошо (я видел мгновенную реализацию Sql 2005 года 300 ТБ, которые казались довольно быстро реагирующими),

0
ответ дан 3 December 2019 в 13:56
поделиться

Когда Вы добираетесь до размеров базы данных OBSCENE (где более чем 1 ТБ является достаточно действительно большим, и 500 ТБ трахает крупный), затем операционная поддержка должна прийти очень высоко в списке требований. С так большим количеством данных Вы не имеете предосудительные отношения с пенсом, зажимающим системные спецификации.

Как Вы собираетесь скопировать тот размер системы? Обновить ОС и исправить базу данных? Масштабируемость и надежность беспокойство?

У меня есть опыт и Oracle и MS SQL, и для действительно действительно больших систем (пользователи, данные или важность) затем, Oracle лучше разработана для операционного управления поддержкой и управления данными.

Каждое испытанное, чтобы скопировать и восстановить разделение базы данных 1TB + SQL Server по поводу нескольких баз данных по нескольким экземплярам с файлами журнала транзакций, выкладываемыми везде каждой базой данных и пытающийся сохранить все это в синхронизации? Удача с этим.

С Oracle у Вас есть ОДНА база данных (таким образом, я не соглашаюсь с, "общий ничто" не приближается, лучше) с ОДНИМ набором Журналов отката (1) и одним набором архивных журналов (2), и можно просто добавить узлы дополнительного оборудования, не изменяясь (т.е. повторно деля) Вы приложение и данные.

(1) Журналы отката, конечно, зеркально отражаются. (2) Архивные журналы, конечно, хранятся в нескольких местоположениях.

2
ответ дан 3 December 2019 в 13:56
поделиться

И Oracle Server и SQL Server являются базами данных совместно используемого диска, таким образом, они ограничиваются дисковой пропускной способностью для запросов что сканирование таблицы по большим объемам данных. Продукты, такие как Teradata, Netezza или Выпуск Параллели DB/2 'совместно используются ничто' архитектура, где база данных хранит горизонтальные разделы на отдельных узлах. Этот тип архитектуры дает лучшее выполнение параллельного запроса в качестве локальных дисков на каждом узле, не ограничиваются через центральное узкое место на SAN.

Системы совместно используемого диска (такие как Oracle, Реальные Кластеры Приложения или Кластеризованные установки SQL Server все еще требуют общего SAN, который ограничил пропускную способность для потоковой передачи. На VLDB это может серьезно ограничить сканирующую таблицу производительность, которой возможно достигнуть. Большинство запросов хранилища данных выполняет таблицу или сканирования диапазона через большие блоки данных. Если запрос поразит больше, чем несколько процентов строк, единственное сканирование таблицы часто является оптимальным планом запросов.

Несколько локальных дисковых массивов прямого присоединения на узлах дают больше дисковой пропускной способности.

Сказав, что я знаю о магазине DW Oracle (крупнейшая европейская телекоммуникационная компания), который имеет основанное на оракуле хранилище данных, которое загружает 600 ГБ в день, таким образом, архитектура совместно используемого диска, кажется, не налагает непреодолимые ограничения.

Между MS-SQL и Oracle там некоторые различия. По моему скромному мнению, Oracle имеет лучше поддержку VLDB, чем SQL-сервер по следующим причинам:

  • Oracle имеет собственную поддержку растровых индексов, которые являются индексной структурой, подходящей для высокоскоростных запросов хранилища данных. Они по существу делают ЦП для компромисса ввода-вывода, поскольку они - закодированная длина выполнения и используют относительно мало пространства. С другой стороны, заявление Microsoft, что Индексное Пересечение не заметно медленнее.

  • Oracle имеет лучшие средства разделения таблицы, чем SQL Server. IIRC разделение таблицы в SQL Server 2005 может только быть сделан на отдельном столбце.

  • Oracle может быть выполнена на несколько больше оборудование, чем SQL Server, хотя можно выполнить SQL-сервер в некоторых вполнедостойнобольшойсистемах .

  • Oracle имеет более сформировавшуюся поддержку Осуществленных представлений, и Запрос переписывают для оптимизации реляционных запросов. SQL2005 действительно имеет некоторый запрос, переписывают возможность, но это плохо документируется, и я не видел, что это использовало в производственной системе. Однако Microsoft предложит, чтобы Вы использовали Analysis Services, которая действительно на самом деле поддерживает ничего не, совместно использовал конфигурации.

Если Вы не будете иметь действительно библейские объемы данных и ничего не выбираете между Oracle и общим архитектура, такая как Teradata, Вы будете, вероятно, видеть мало практического различия между Oracle Server и SQL Server. Особенно начиная с введения SQL2005 средства разделения в SQL Server просматриваются как достаточно хорошие и существует много примеров систем мультитерабайта, которые были успешно реализованы на нем.

21
ответ дан 3 December 2019 в 13:56
поделиться

Когда вы говорите о 500 ТБ, это (а) большой и (б) специализированный. Я бы пошел в консалтинговую фирму с соответствующими специалистами, чтобы посмотреть на существующие наборы навыков, интеграцию с существующими стеками технологий, ожидаемое использование, требования к резервному копированию / восстановлению / аварийному восстановлению ....

Короче говоря, это не тот вид проект, в который я бы отправился, основываясь на мнениях из stackoverflow. Это не оскорбление, но необходимо принять во внимание слишком много факторов, многие из которых будут конфиденциальными.

5
ответ дан 3 December 2019 в 13:56
поделиться
Другие вопросы по тегам:

Похожие вопросы: