Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Сравнение СУБД Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2 3 4 5   вперед  Ctrl      все
 Что выбрать Oracle или DB2?  [new]
e60
Member

Откуда:
Сообщений: 89
Добрый день. Снова возникла проблема в выборе СУБД.
Итак задача. В БД где-то 30-40 таблиц. Будет главная таблица с 30 млн записей. В 5 таблицах порядка 100-200 тысяч записей. Ну и в остлальных до 10 тыс.
В основном пользоватлеи будут работать на чтение данных посредством запросов с 3-4 Join или вложенным запросами.
Все изменения юудут происходить пакетно, т.е. (сразу по 1000-2000 изменений раз в 10 мин, 100-200 тыс изменений 2 раза в сутки).
Ожидаемое кол-во пользователей 20-30 одновременных подключений. Работать с БД будут через ADO+Delphi.
Железо при такой загрузке будет 2-ух процовый Xeon 3.6 Ghz 4 Gb ОЗУ
2-х 320Mb/s SCSI RAID 1+ 1 SCSI для логов и 1 SCSI для backup.
+ еще один такой же сервак, но вместо 2-ух процов будет 1. Его загрузка будет порядка 10-20 одновременных.
Лицензирование будет производиться по кол-ву пользователей, так как это не web система. Среднее кол-во пользователей для лицензирования 40-50.
Ест-но будет репликация, причем возможно в другной регион.
Еще меня смущает то. что Oracle собирается брать деньги за кол-во ядер в процессоре, а DB2 нет.
Кроме того Oracle версионник, а DB2 блокировочник. Могут ли из-за этого тоже возникнуть тарблы с чтением таблиц.
1 мар 05, 10:28    [1351604]     Ответить | Цитировать Сообщить модератору
 Re: Что выбрать Oracle или DB2?  [new]
vybegallo
Guest
Версионник против блокировочника - это чисто российские заморочки. За 8 лет работы в Штатах в сфере БД я ни разу не слышал, чтобы хотя-бы обуждали преимущества одного перед другим (не говоря уже о принятии решения о покупке). Большинство специалистов считает все основные БД (Оракл, ДБ2, Sybase, Informix, MS SQL) примерно равными в плане функциональности, поэтому покупают либо то, что уже знают, либо то, за что меньше просят. Для вашей задачи однозначно годится любая СУБД из перечисленных
1 мар 05, 17:09    [1353661]     Ответить | Цитировать Сообщить модератору
 Re: Что выбрать Oracle или DB2?  [new]
nkulikov
Guest
Если изменения у тебя идут пакетно какая разница блокировочник/версионник.
Цена вопроса вместе с налогами примерно в случае DB2 примерно 4500$
1 мар 05, 17:12    [1353676]     Ответить | Цитировать Сообщить модератору
 Re: Что выбрать Oracle или DB2?  [new]
tygra
Member

Откуда: Тверь (Иркутск, Край)
Сообщений: 9997
Для такой нагрузки - чего хотите, того и берите из списка в предыдущем посте

-- Tygra's --
1 мар 05, 17:12    [1353678]     Ответить | Цитировать Сообщить модератору
 Re: Что выбрать Oracle или DB2?  [new]
gardenman
Member

Откуда: С-Петербург
Сообщений: 2347
Завтра постараюсь привести в пример несколько циферок....
1 мар 05, 18:05    [1353909]     Ответить | Цитировать Сообщить модератору
 Re: Что выбрать Oracle или DB2?  [new]
FishingIsGood
Member

Откуда:
Сообщений: 133
Не знаю, как обстоят дела с DB2 сейчас, но когда я сталкивался с ним пару лет назад, то пакетные подгрузки/удаления работали ооооочень мендленно. Без прибивания индексов подгрузка пары сотен тысяч записей в таблицу может длится часами. А если прибить индексы, то это надо продумывать, как это сделать не сильно затронув работоспособность системы (недеюсь вы не планируете выводить базу оффлайн каждые 10 минут). Я, хоть и недолюбливаю Оракл, но склонялся бы к нему. Ещё раз повторюсь, мой опыт может быть немного устаревшим, но моё дело предупредить, а вам с такой несколько специфической постановкой задачи очень советую сделать эксперемент на обоих СУБД, потому как один из них может оказаться просто не пригоден.

По поводу версионника против блокировочника... Так в Штатах половина DBA'ев не знают как поддерживаются транзакции на их серверах. А по поводу выбора - в случае частых пакетных подгрузок версионник может быть предпочтительнее, но это всецело зависит от того как эти подгрузки будут организованы.
1 мар 05, 23:13    [1354404]     Ответить | Цитировать Сообщить модератору
 Re: Что выбрать Oracle или DB2?  [new]
vybegallo
Guest
FishingIsGood
Не знаю, как обстоят дела с DB2 сейчас, но когда я сталкивался с ним пару лет назад, то пакетные подгрузки/удаления работали ооооочень мендленно. Без прибивания индексов подгрузка пары сотен тысяч записей в таблицу может длится часами. А если прибить индексы, то это надо продумывать, как это сделать не сильно затронув работоспособность системы (недеюсь вы не планируете выводить базу оффлайн каждые 10 минут). Я, хоть и недолюбливаю Оракл, но склонялся бы к нему. Ещё раз повторюсь, мой опыт может быть немного устаревшим, но моё дело предупредить, а вам с такой несколько специфической постановкой задачи очень советую сделать эксперемент на обоих СУБД, потому как один из них может оказаться просто не пригоден.

По поводу версионника против блокировочника... Так в Штатах половина DBA'ев не знают как поддерживаются транзакции на их серверах. А по поводу выбора - в случае частых пакетных подгрузок версионник может быть предпочтительнее, но это всецело зависит от того как эти подгрузки будут организованы.


Американские DBA, конечно, попадаются разные. Но поскольку больших и сверхбольших баз здесь гораздо больше, равно как и систем, работающих в режиме 24х7, то квалификация дибиэев, думаю, будет повыше. Но я, собственно, не их имел в виду. За 5 лет в саппорте Информикса имел удовольствие поработать с зубрами, которые могли глянуть на дамп памяти и сказать "о ! эти три байта я уже где-то видел..." - и вспомнить баг, который они чинили пару лет назад. Трындели мы о конкурентах, естественно, немало, и официально на слетах, и неофициально без маркетингового BS в кулуарах - и ни разу никто не сказал, мол, надо бы нам версионник сделать, а то big "O" нас обходит :-) Так что такое у меня сложилось мнение, что споры версионников с бьлокировочниками - это типа споры остроконечников с тупоконечниками.
2 мар 05, 00:17    [1354440]     Ответить | Цитировать Сообщить модератору
 Re: Что выбрать Oracle или DB2?  [new]
FishingIsGood
Member

Откуда:
Сообщений: 133
Так и спорить не о чем. Вопрос не в том что что то лучше, а что то хуже а в том, что есть определённый круг задач, где верионная модель предпочтительнее, и наобород. Ну и личные предпочтения, конечно. То есть оба лучше. Для этой конкретной задачи, мне кажется версионник будет предпочтительнее при определённой организации пакетных изменений. А по поводу квалификации DBA'ев (хот и не в тему), то есть конечно зубры в америчке, но в основном на базах в организациях всё же сидят среднеарифметические китайцы/индусы... Я проводил много интервъю с кандидатами на DBA позиции - про транзакционные модели раза два-три мне только смогли ответить - не знают-с.
2 мар 05, 01:06    [1354460]     Ответить | Цитировать Сообщить модератору
 Re: Что выбрать Oracle или DB2?  [new]
e60
Member

Откуда:
Сообщений: 89
nkulikov
Если изменения у тебя идут пакетно какая разница блокировочник/версионник.
Цена вопроса вместе с налогами примерно в случае DB2 примерно 4500$

Если говорить о DB2, то для начала я куплю недорогой DB2 Express (лицензия на кол-во пользователей ). Тот объем данных, который я привел появятся конечно не сразу. ПРосто я хоте сразу заложиться, чтобы потом ничего не переделывать. Мне проще при поялвении нового клиенат просто докупить лицензии на пользователей и все.
Кстати еще вопрос. Еслми мы очень сильно разовьемся и решим перейти на UltraSPARC или IBM Power. В случае лицензирования по кол-ву процессоров учитывается кол-во ядер или нет?
2 мар 05, 09:47    [1354779]     Ответить | Цитировать Сообщить модератору
 Re: Что выбрать Oracle или DB2?  [new]
e60
Member

Откуда:
Сообщений: 89
Блин теперь еще и Ingres стала open source.
Я прочитал про нее вроде тоже все есть. Replication, table partitioning и.т.п.
Народ кто-нибудь видел РЕАЛЬНУЮ большую базу под управлением Ingres
2 мар 05, 09:55    [1354806]     Ответить | Цитировать Сообщить модератору
 Re: Что выбрать Oracle или DB2?  [new]
e60
Member

Откуда:
Сообщений: 89
Блин теперь еще и Ingres стала open source.
Я прочитал про нее вроде тоже все есть. Replication, table partitioning и.т.п.
Народ кто-нибудь видел РЕАЛЬНУЮ большую базу под управлением Ingres
2 мар 05, 09:57    [1354817]     Ответить | Цитировать Сообщить модератору
 Re: Что выбрать Oracle или DB2?  [new]
gardenman
Member

Откуда: С-Петербург
Сообщений: 2347
Простенький такой тест. У меня дома машинка слабенькая -Сeleron 1300,RAM 512, и IDE 60 GB (7200 об). Стоит XP,Oracle 10g, DB2 8.2
Попытался сделать на них одно и то же - чтоб максимум похожести было
Oracle:
spool result.txt
set timing on

drop table test;
create table test (
	id integer not null,
	constraint pk primary key (id)
);

create or replace procedure filltest is
	id_ integer;
begin
	id_:=0;
	while id_<1000000 loop
		insert into test values (id_);
		id_:=id_+1;
	end loop;
	commit;
end filltest;
/

@stat

set timing off
spool off
ed result.txt


DB2:
create table test (
	id	integer not null,
	constraint pk primary key (id)
)@

commit@

drop procedure filltest(timestamp,timestamp)@

create procedure filltest (
	out start timestamp,
	out stop timestamp
) language sql
m: begin
	declare id integer default 0;
	set start=current timestamp;
	while m.id<1000000 do
		insert into test values (m.id);
		set m.id=m.id+1;
	end while;
	set stop=current timestamp;
end
@
commit@

А после этого посмотреть статистику I/O
Oracle:
select
	m.STATISTIC#,
	n.name,
	m.value
from
	v$mystat m,
	v$statname n
where
	m.STATISTIC# in (133,173)
	and m.STATISTIC#=n.STATISTIC#;

DB2 (специально написал для этого маленькую процедурку):

update dbm cfg using DFT_MON_BUFPOOL   ON@
update dbm cfg using DFT_MON_LOCK 	   ON@
update dbm cfg using DFT_MON_SORT      ON@
update dbm cfg using DFT_MON_STMT      ON@
update dbm cfg using DFT_MON_TABLE     ON@
update dbm cfg using DFT_MON_TIMESTAMP ON@
update dbm cfg using DFT_MON_UOW       ON@

drop procedure GET_IO_STATISTICS()@

create procedure GET_IO_STATISTICS()
language sql
result sets 1
begin
	declare CDN cursor with return for
		select 
			AGENT_ID,
			UOW_LOG_SPACE_USED,
			POOL_DATA_TO_ESTORE+POOL_INDEX_TO_ESTORE as WRITTEN_PAGES,
			POOL_INDEX_FROM_ESTORE+POOL_DATA_FROM_ESTORE as READ_PAGES,
			POOL_DATA_WRITES,
			POOL_INDEX_WRITES,
			DIRECT_READS,
			DIRECT_WRITES
		from 
			table(snapshot_appl('test',-1)) as a 
		where
			a.agent_id in
				(select 
						AGENT_ID 
					from 
						table(SNAPSHOT_APPL_INFO('test',-1)) as tmp 
						where tmp.APPL_ID=APPLICATION_ID()
				);
	open CDN;
end
@

commit@


ну и собственно результаты:
Oracle:
SQL> set timing on
SQL> call filltest();

Call completed.

Elapsed: 00:03:56.93
SQL> @stat

STATISTIC# NAME                                                                  VALUE
---------- ---------------------------------------------------------------- ----------
       133 redo size                                                         492431512
       173 undo change vector size                                           156833164

Elapsed: 00:00:00.12

DB2:

UPDATE MONITOR SWITCHES USING BUFFERPOOL ON
DB20000I  The UPDATE MONITOR SWITCHES command completed successfully.

UPDATE MONITOR SWITCHES USING TIMESTAMP ON
DB20000I  The UPDATE MONITOR SWITCHES command completed successfully.

UPDATE MONITOR SWITCHES USING UOW ON
DB20000I  The UPDATE MONITOR SWITCHES command completed successfully.

UPDATE MONITOR SWITCHES USING TABLE ON
DB20000I  The UPDATE MONITOR SWITCHES command completed successfully.

commit
DB20000I  The SQL command completed successfully.

call filltest(?,?)

  Value of output parameters
  --------------------------
  Parameter Name  : START
  Parameter Value : 2005-03-02-01.20.57.500000 

  Parameter Name  : STOP
  Parameter Value : 2005-03-02-01.22.04.125000 

  Return Status = 0


call GET_IO_STATISTICS()


  Result set 1
  --------------

  AGENT_ID             UOW_LOG_SPACE_USED   WRITTEN_PAGES        READ_PAGES           POOL_DATA_WRITES     POOL_INDEX_WRITES    DIRECT_READS         DIRECT_WRITES       
  -------------------- -------------------- -------------------- -------------------- -------------------- -------------------- -------------------- --------------------
                    66            229214712                    0                    0                 3988                 3627                  136                60672

  1 record(s) selected.

  Return Status = 0


commit
DB20000I  The SQL command completed successfully.

492+156=648
648/229=2,82

У кого-нить будут комментарии? Может я что-нить не так делаю?
2 мар 05, 10:07    [1354855]     Ответить | Цитировать Сообщить модератору
 Re: Что выбрать Oracle или DB2?  [new]
Yo!
Guest
2gardenman

все что вы натестировали - убогость IDE и виндовс на настроеном по дефолту оракле, в убогости вин+ide для оракла никто и не сумневается. у него стандартые ad-hoc запросы - т.е. смотрим tpc-h

2е60
дб2 на просторах россии не сильно популярен, советую еще сначала прикинуть сколько вам встанет спец+дба на дб2.
и сторед процедуры вообще не планируется использовать ?
2 мар 05, 10:34    [1354975]     Ответить | Цитировать Сообщить модератору
 Re: Что выбрать Oracle или DB2?  [new]
gardenman
Member

Откуда: С-Петербург
Сообщений: 2347
Yo!
2gardenman

все что вы натестировали - убогость IDE и виндовс на настроеном по дефолту оракле, в убогости вин+ide для оракла никто и не сумневается. у него стандартые ad-hoc запросы - т.е. смотрим tpc-h

2е60
дб2 на просторах россии не сильно популярен, советую еще сначала прикинуть сколько вам встанет спец+дба на дб2.
и сторед процедуры вообще не планируется использовать ?


Уважаемый Yo! хочет сказать, что можно настроить Оракла так, чтобы I/O было меньше? Или чтобы он не писал в UNDO? Ну да... если сделать табличку NOTLOGGED, то конечно такого I/O не будет. Но в работающей системе это ведь недопустимо, или я не прав? В любом случае - какая разница какие диски? При одинаковой системе I/O DB2 потенциально может сделать почти в 3 раза больше.
2 мар 05, 10:44    [1355025]     Ответить | Цитировать Сообщить модератору
 Re: Что выбрать Oracle или DB2?  [new]
gardenman
Member

Откуда: С-Петербург
Сообщений: 2347
Да, и что за наезд на хранимые процедуры?... непонятно....
2 мар 05, 10:46    [1355035]     Ответить | Цитировать Сообщить модератору
 Re: Что выбрать Oracle или DB2?  [new]
e60
Member

Откуда:
Сообщений: 89
Yo!
2gardenman

все что вы натестировали - убогость IDE и виндовс на настроеном по дефолту оракле, в убогости вин+ide для оракла никто и не сумневается. у него стандартые ad-hoc запросы - т.е. смотрим tpc-h

А вы простите спецификацию интерфейсов IDE и SCSI читали?
Вообще-то SCSI интерфейс дествительно хорош только при mutlitthreading I/O, что могут только хорошие OS (AIX,SCO или Solaris). Linux и Windows, например, такого вообще не умеют. Поэтому разница в скорости доступа к данным при одинаковой сокрости вращения головки незначительна.
Самый главный плюс SCSI - это на порядок более надежная механика, а по скорости SCSI у современных IDE не сильно выигрывает.
Кроме того не забывайте, что IDE или SCSI - это всего лишь интерфейсы, а есть еще скорость вращения головки, размер буфера и скорость чтения/записи.
Кроме того смотрите объективно. DB2 тоже не сильна на Windows+IDE.
2 мар 05, 10:52    [1355067]     Ответить | Цитировать Сообщить модератору
 Re: Что выбрать Oracle или DB2?  [new]
StalkerS
Member

Откуда: Melbourne
Сообщений: 1344
e60

Кроме того смотрите объективно. DB2 тоже не сильна на Windows+IDE.


;)

нашли кого к обьективности призывать. Yo! широко известен на этом сайте поливанием грязи на все, на чем не написано слово Oracle
2 мар 05, 11:04    [1355134]     Ответить | Цитировать Сообщить модератору
 Re: Что выбрать Oracle или DB2?  [new]
vadiminfo
Member

Откуда: Обнинск
Сообщений: 4802
2 gardenman
Чтобы посмотреть статисику в Оракл нужно выполнить простой запрос, а на DB2 писать процедуру?
Это вообще уже кое о чем говорит.

Стаистика коммулятивна - нужно смотреть что было до и что после операции.
Почему Вы эти показатели выбрали? Вы считаете это самое критическое в I/O?
Ведь речь идет вообще о чтении. Нужны скорее показатели типа db file scattered read, db file sequential read.
И на самом деле те или иные показатели нужно смотреть в зависимости от того, чего ждет Оракл во время критичных запросов. Что как я понял на Оракле легче. Там туча средств для прояснения статистики. В то числе и возможность отслеживать здоровье БД за определенные интервалы. Специальные сводные отчеты.

2 e60
Траблы с чтением таблиц из-за того, что Оракл версионнник могут возникнуть только если чтение будет в момент интенсивной записи. А блокировочник вообще может заблокировать. А Оракл все-таки будет читать версии до начала обновления данных. Однако, 1000-2000 изменеий, наверное, не очень интесивное. Ну есть всякие возможности по настройкам, если это критично. Возможно и 100-200 тыс не совсем еще интенсивное если тока 2 раза в сутки. Зато точно не возникнет траблов с блокировкой читающим пишущего и с грязным чтением.

Ну у Оракла есть средства для повышения скорости чтения в виде фрагментирования. Т.е. если разбить эту таблу на секции по тому или иному признаку так, чтобы данные по запросу были в одной секции. Тада при запррсе будут пропущены ненужные секции. Т.е. он будет искать, например не в 30 млн, а 1 млн. Это зависит конечно от видов запросов. Я про Вашу главную таблицу в 30 млн записей. Есть всякие мат представления. Т.е. выполнять запросы раньше, чем пользователь их захочет смотреть. Это тоже конечно, зависит от требований пользователей.
Конечно, я не знаю что есть в DB2.
Нужна статистика именно на чтение по тем запросам, которые будут критичными. Смотреть чего ждет система и как с этим бороться.
2 мар 05, 11:21    [1355216]     Ответить | Цитировать Сообщить модератору
 Re: Что выбрать Oracle или DB2?  [new]
StalkerS
Member

Откуда: Melbourne
Сообщений: 1344
vadiminfo

Что как я понял на Оракле легче
...
Конечно, я не знаю что есть в DB2.


;)
2 мар 05, 11:30    [1355262]     Ответить | Цитировать Сообщить модератору
 Re: Что выбрать Oracle или DB2?  [new]
gardenman
Member

Откуда: С-Петербург
Сообщений: 2347
>Чтобы посмотреть статисику в Оракл нужно выполнить простой запрос, а на DB2 писать процедуру?
>Это вообще уже кое о чем говорит.

Это ни о чем не говорит.. абсолютно...
Я даже соглашусь что в Oracle это сделано удобнее, и средства для анализа статистики богаче.
но ХП писать абсолютно не обязательно.. Просто статистика в DB2 по сессии представлена горизотнально - набор полей из табличной функции, а в Оракле -вертикально - в виде записей представления. Процедурку я писал чисто для своего личного удобства.
2 мар 05, 11:36    [1355301]     Ответить | Цитировать Сообщить модератору
 Re: Что выбрать Oracle или DB2?  [new]
e60
Member

Откуда:
Сообщений: 89
Значит выод можно сделать один. И Oracle и DB2 примерно одинаковы по функциональности. А поскольку я ни с тем ни с другим не работал остается только выбрать предложение по цене.
Насколько я смог подсчитать DB2 подешевле будет, да и политика лицензирования процов тоже нормальная.
2 мар 05, 11:44    [1355343]     Ответить | Цитировать Сообщить модератору
 Re: Что выбрать Oracle или DB2?  [new]
gardenman
Member

Откуда: С-Петербург
Сообщений: 2347
e60
Значит выод можно сделать один. И Oracle и DB2 примерно одинаковы по функциональности. А поскольку я ни с тем ни с другим не работал остается только выбрать предложение по цене.
Насколько я смог подсчитать DB2 подешевле будет, да и политика лицензирования процов тоже нормальная.


Лично я предлагаю бросить монетку:
Орел - Оракл, Орешка - ДБ2, встанет на ребро - Ingres, зависнет в воздухе ...
2 мар 05, 11:56    [1355403]     Ответить | Цитировать Сообщить модератору
 Re: Что выбрать Oracle или DB2?  [new]
Yo!
Guest
Вообще-то SCSI интерфейс дествительно хорош только при mutlitthreading I/O, что могут только хорошие OS (AIX,SCO или Solaris). Linux и Windows, например, такого вообще не умеют. Поэтому разница в скорости доступа к данным при одинаковой сокрости вращения головки незначительна.

mutlitthreading I/O такое где возникает ? может Asynchronous I/O ?
http://lse.sourceforge.net/io/aio.html

 Самый главный плюс SCSI - это на порядок более надежная механика, а по скорости SCSI у современных IDE не сильно выигрывает.
Кроме того не забывайте, что IDE или SCSI - это всего лишь интерфейсы, а есть еще скорость вращения головки, размер буфера и скорость чтения/записи.

то-то и оно, у него дешевый иде без кеша за $50, шина + апаратный кеш сказийника и на одной задаче дадут результат. оракул не расчитан что на каждый его чих иде будет елозить головками. у него фрагментированый файл данных, винда в свопе, кривой db_block_size и касперский в бэкграунде в результате еще однин тест для детей.

вот тут почти без соплей уже сравнивали:
https://www.sql.ru/forum/actualthread.aspx?bid=5&tid=94928&pg=1
2 мар 05, 12:22    [1355553]     Ответить | Цитировать Сообщить модератору
 Re: Что выбрать Oracle или DB2?  [new]
Yo!
Guest
есть тесты tpc/sap, там люди - сертифицированые дба, они имеют представление о субд которую настраивают. там все видно - на олпт дб2 делает оракл на 10-20%, на ad-hoc оракл также бьет дб2.
2 мар 05, 12:29    [1355592]     Ответить | Цитировать Сообщить модератору
 Re: Что выбрать Oracle или DB2?  [new]
gardenman
Member

Откуда: С-Петербург
Сообщений: 2347
TPC:
Db2 - 3,210,540
Oracle RAC - 1,184,893

3,210,540 / 1,184,893 = 2,709...
что-то уж цифра больно похода на 2,8 которую получаю я
Может все-же Оракл упирается в пропускную способность каналов I/O?
2 мар 05, 12:34    [1355619]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2 3 4 5   вперед  Ctrl      все
Все форумы / Сравнение СУБД Ответить