powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Сравнение СУБД [игнор отключен] [закрыт для гостей] / Чем Oracle отличается от SQL Server
25 сообщений из 248, страница 8 из 10
Чем Oracle отличается от SQL Server
    #35599996
Фотография Gluk (Kazan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pkarklinУгу. Вопрос остается в силе. Помнится на мой вопрос, точнее опрос, кто их на практике юзал, откликнулось не более одного человека. :)

Оооо так ВАШ вопрос в этом ? А все таки не в том как эти фичи будут влиять на план ???
Ну я использовал, что дальше ???

Вы не переживайте, году так в 2023 эти фичи добавят в MS SQL и эти фичи как по волбшеству станут востребованными и жизненно необходимыми
...
Рейтинг: 0 / 0
Чем Oracle отличается от SQL Server
    #35600008
pkarklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gluk (Kazan)Ну я использовал, что дальше ???

Уже говорилось:

pkarklinВот я и просил привести различия в планах и IO с и без кластером, ведь раз Вы выдвигаете это как "сильно влияющий фактор", то провести эксперимент не составит труда.
...
Рейтинг: 0 / 0
Чем Oracle отличается от SQL Server
    #35600033
Фотография Gluk (Kazan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pkarklinGluk (Kazan)Ну я использовал, что дальше ???

Уже говорилось:

pkarklinВот я и просил привести различия в планах и IO с и без кластером, ведь раз Вы выдвигаете это как "сильно влияющий фактор", то провести эксперимент не составит труда.

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

P.S. а шо це таке за выровненные индексы ??? ссылочка в BOL меня вполне устроит
...
Рейтинг: 0 / 0
Чем Oracle отличается от SQL Server
    #35600081
pkarklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gluk (Kazan)P.S. а шо це таке за выровненные индексы ??? ссылочка в BOL меня вполне устроит

Вот так, понятней, IMHO, будет:

http://www.sql.ru/articles/mssql/2005/073102PartitionedTablesAndIndexes.shtml после Рис. 2
...
Рейтинг: 0 / 0
Чем Oracle отличается от SQL Server
    #35600186
Фотография Gluk (Kazan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pkarklinGluk (Kazan)P.S. а шо це таке за выровненные индексы ??? ссылочка в BOL меня вполне устроит

Вот так, понятней, IMHO, будет:

http://www.sql.ru/articles/mssql/2005/073102PartitionedTablesAndIndexes.shtml после Рис. 2

понятно, спасибо
...
Рейтинг: 0 / 0
Чем Oracle отличается от SQL Server
    #35600277
Фотография Apex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pkarklinGluk (Kazan)IOT, Cluster ???

IOT в Oracle = Clustered Index в MS SQL.

Cluster - отсутствует. Но хотелось бы узнать, каким образом наличие\отсутствие оного повлияет на план выполнения\IO в классической схеме "звезда". Если это будут реальные примеры - здорово.

1) Причем тут звезда и почему именно звезда, а не снежинка?
2) Наличие\отсутствие оного (по краней мере в Оракл) влияет как на план, так и на ввод-вывод в зависимости от...много чего.

pkarklinВот я и просил привести различия в планах и IO с и без кластером, ведь раз Вы выдвигаете это как "сильно влияющий фактор", то провести эксперимент не составит труда.
В смысле вы хотите посмотреть на план с обычной таблицей и план с кластером? Или на план с IOT и кластером? Или что вы вообще хотите? Вы вообще понимаете, что данные в этих структурах организованы по-разному? Вы понимаете, что за счет этого, в определенных случаях можно получить хороший выигрышь в производительности или не получить, в зависимости от случая? Вы понимаете, что иметь в наличии инструмент хорошо подходящий для определенного случая, лучше, чем иметь инструмент, который тоже подходит, но не так хорошо?

P.S. Мне все это напоминает наш прошлый диалог о контрольных точках при аттаче\детаче базы в MS SQL, когда вы меня пытались убедить, что все там происходит мнгновенно и бесплатно, а в итоге выяснилось, что вы сами не до конца понимаете механизмы этого процесса.
...
Рейтинг: 0 / 0
Чем Oracle отличается от SQL Server
    #35600655
pkarklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Apex1) Причем тут звезда и почему именно звезда, а не снежинка?

При том, что связь одной таблицы с несколькими в запросе называют "звездой" и это один из тестов производительности серверов СУБД. Вам не известна такая схема?

Apex2) Наличие\отсутствие оного (по краней мере в Оракл) влияет как на план, так и на ввод-вывод в зависимости от...много чего.

Блеск!!! Я знаю, но не скажу?

ApexВ смысле вы хотите посмотреть на план с обычной таблицей и план с кластером? Или на план с IOT и кластером? Или что вы вообще хотите?

Гм... Разве можно неоднозначно трактовать:

pkarklinВот я и просил привести различия в планах и IO с и без кластером

???

ApexВы вообще понимаете, что данные в этих структурах организованы по-разному?

Да, понимаю!

ApexВы понимаете, что за счет этого, в определенных случаях можно получить хороший выигрышь в производительности или не получить, в зависимости от случая? Вы понимаете, что иметь в наличии инструмент хорошо подходящий для определенного случая, лучше, чем иметь инструмент, который тоже подходит, но не так хорошо?

Простите, кто на ком стоял? Можно, все-таки, вместо "бла-бла-бла", привести именно различия в плане и\или IO. Если нет, то лучше не писАть.
...
Рейтинг: 0 / 0
Чем Oracle отличается от SQL Server
    #35600970
Фотография Apex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pkarklinПри том, что связь одной таблицы с несколькими в запросе называют "звездой"

Вот даже как... А если связь есть, а звезды как таковой нет, как быть?

pkarklinэто один из тестов производительности серверов СУБД.
Если вы намекаете на те, что перечислены на tpc.org (TPC-H\E), то скажу вам вот что: схема звезда сама по себе не является никаким тестом или джойном, это просто типовая структура организации реляционных таблиц в многомерном проектировании хранилищ данных.

pkarklinВам не известна такая схема?
Схема "звезда"
Джойн (в т.ч. и нескольких таблиц)
pkarklin
Блеск!!! Я знаю, но не скажу?

Давайте конкретней: что вы хотите увидеть, как от изменения способа хранения и организации данных меняется план? Так?

pkarklin
ApexВ смысле вы хотите посмотреть на план с обычной таблицей и план с кластером? Или на план с IOT и кластером? Или что вы вообще хотите?

Гм... Разве можно неоднозначно трактовать:
pkarklinВот я и просил привести различия в планах и IO с и без кластером
???

без кластером - может быть: просто таблица, индекс-организованная таблица. Речь ведь шла о различиях IOT'ов и Cluster'ов? Или вы серьезно хотите увидеть разницу между обычной таблицей и кластером?

pkarklin
Простите, кто на ком стоял? Можно, все-таки, вместо "бла-бла-бла", привести именно различия в плане и\или IO. Если нет, то лучше не писАть.
Я не до конца понял, что с чем сравниваем. Давайте конкретно, такие-то таблицы, такие-то структуры, покажите планы. Опять же, в кластер можно объединить не только две таблицы заголовок-деталь, можно и одну таблицу так организовать, и это не будет IOT.
...
Рейтинг: 0 / 0
Чем Oracle отличается от SQL Server
    #35601027
pkarklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Apex

авторВот даже как... А если связь есть, а звезды как таковой нет, как быть?

Эээ... Вы о чем? "Как быть" когда?

авторЕсли вы намекаете на те, что перечислены на tpc.org (TPC-H\E), то скажу вам вот что: схема звезда сама по себе не является никаким тестом или джойном, это просто типовая структура организации реляционных таблиц в многомерном проектировании хранилищ данных.

Угу, но эта же структура организации "отображается" и в запрос. Не правда ли?

авторДавайте конкретней: что вы хотите увидеть, как от изменения способа хранения и организации данных меняется план? Так?

Еще раз. Я хочу узнать что менятеся (план, IO) и меняется ли?

авторРечь ведь шла о различиях IOT'ов и Cluster'ов?

С чего Вы взяли?

авторИли вы серьезно хотите увидеть разницу между обычной таблицей и кластером?

Уже на протяжении 3ей страницы.

авторЯ не до конца понял, что с чем сравниваем. Давайте конкретно, такие-то таблицы, такие-то структуры, покажите планы.

Я Вам что-то должен показывать??? Увольте, не я тут размахиваю Кайтом в качестве аргументации увеличения производительности "на порядок" ((с) Yo.! ) при наличие кластера.

авторОпять же, в кластер можно объединить не только две таблицы заголовок-деталь, можно и одну таблицу так организовать, и это не будет IOT.

... а если бы у бабушки были яйца...

Покажите результат сравнения с кластером\без кластера хотя бы для двух таблиц master\detail, умоляю, в конце то концов. ;)
...
Рейтинг: 0 / 0
Чем Oracle отличается от SQL Server
    #35601320
MGR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну, что касается ораклового оптимизатора, у меня были к нему претензии.
была система с отчётами, которая прекрасно работала на MSSQL, прямой перевод запросов на Оракл не дал приемлемого результата в некоторых особо сложных случаях, пришлось пользоваться хинтами и хитростями.
Собственно, пара вопросов на эту тему задавалась мною в форуме оракла (были ещё вопросы коллеги, но я его ника не помню и не найду).
мои вопросы

Хотя, надо помнить, что я в Оракле был совсем новичок (да и щас такой), так что может в этом дело.
...
Рейтинг: 0 / 0
Чем Oracle отличается от SQL Server
    #35601426
Yo.!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
>Я Вам что-то должен показывать??? Увольте, не я тут размахиваю Кайтом в качестве аргументации увеличения производительности "на порядок" ((с) Yo.! ) при наличие кластера.

народ просто не догоняет в чем смысл доказывать очевидное, у вас вот не возникает сомнений в увеличении производительности на порядок при использовании индекса ? и тут вот не понятно откуда скепсис.

для нашего тестика есть у меня идентичные машинки поставил заливатся в мсскл2005 1М данных из скл скрипта, за 10 минут 50К записей, т.е. даже к утру не закончит. это с чем может быть связано ? может он датафайл на каждую вставку увеличивает на пару байт ??
...
Рейтинг: 0 / 0
Чем Oracle отличается от SQL Server
    #35601552
Yo.!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
блин, дошло этот sqlcmd автокомитит, как отключить автокомит ?
поставил в начала скрипта SET AUTO COMMIT OFF - ноль внимания.
...
Рейтинг: 0 / 0
Чем Oracle отличается от SQL Server
    #35601602
longraw
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MGR
Вообще Оракл требует наличия грамотного DBA для своей работы. Если такой DBA есть - оптимизатор там хорошо работает. Если такого DBA нет - все будет зверски тормозить. Поймите простую вещь - у Оракла ВСЕ настраивается руками при создании инстанса. Тш что там выставляется по умолчанию - это бред и ересь. В вашем случае нормальный DBA должен был запланировать снятие полной статистики на вашей схеме на ночь, часиков так в 12 ночи, а также настроить инстанс по человечески, и было бы вам счастье. Причем с гистограммами индексами и прочей требухой. Тогда оптимизатор мог бы хоть немного чего то оптимизировать. Он не зря называется CBO-Cost based optimizer, он в общем достаточно сложный внутри и для работы ему как минимум надо с приличной достоверностью знать сколько у вас чего где и как, чтобы вычислять стоимости операций. Кроме того он все варианты не перебирает тупо, это слишком долго. Кстати в 10g он значительно менее кривой чем в 9 версии, 9 старенькая уже, ее некорректно сравнивать с 2005 серваком.
...
Рейтинг: 0 / 0
Чем Oracle отличается от SQL Server
    #35601716
Фотография Apex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да пожалуйста.
Кластер создал от балды, не сильно замарачиваясь параметрами хранения. Срез реальных данных документ\спецификация:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
Execution Plan
----------------------------------------------------------
Plan hash value:  1279483583 

--------------------------------------------------------------------------------------------------
| Id  | Operation                     | Name             | Rows  | Bytes | Cost (%CPU)| Time     |
--------------------------------------------------------------------------------------------------
|    0  | SELECT STATEMENT              |                  |  17406  |   645K|     86    ( 2 )|  00 : 00 : 02  |
|    1  |  TABLE ACCESS BY INDEX ROWID  | DETAIL_TABLE     |    527  |   5797  |      5    ( 0 )|  00 : 00 : 01  |
|    2  |   NESTED LOOPS                |                  |  17406  |   645K|     86    ( 2 )|  00 : 00 : 02  |
|    3  |    TABLE ACCESS BY INDEX ROWID| MASTER_TABLE     |     33  |    891  |      4    ( 0 )|  00 : 00 : 01  |
|*   4  |     INDEX RANGE SCAN          | DOCDATE_I        |     33  |       |      2    ( 0 )|  00 : 00 : 01  |
|*   5  |    INDEX RANGE SCAN           | MASTER_DETAIL_FK |    528  |       |      2    ( 0 )|  00 : 00 : 01  |
--------------------------------------------------------------------------------------------------

Predicate Information (identified by operation id):
---------------------------------------------------

    4  - access("M"."DOCDATE">=TO_DATE(' 2007-05-26 00:00:00', 'syyyy-mm-dd hh24:mi:ss')
              AND "M"."DOCDATE"<=TO_DATE(' 2007-06-03 00:00:00', 'syyyy-mm-dd hh24:mi:ss'))
    5  - access("M"."ID_OP"="D"."ID_OP")


Statistics
----------------------------------------------------------
           1   recursive calls
           0   db block gets
         339   consistent gets
           0   physical reads
           0   redo size
       16339   bytes sent via SQL*Net to client
        1389   bytes received via SQL*Net from client
          98   SQL*Net roundtrips to/from client
           0   sorts (memory)
           0   sorts (disk)
        1446   rows processed


Execution Plan
----------------------------------------------------------
Plan hash value:  3811576779 

-----------------------------------------------------------------------------------------------
| Id  | Operation                    | Name           | Rows  | Bytes | Cost (%CPU)| Time     |
-----------------------------------------------------------------------------------------------
|    0  | SELECT STATEMENT             |                |  18067  |   670K|     17    ( 0 )|  00 : 00 : 01  |
|    1  |  NESTED LOOPS                |                |  18067  |   670K|     17    ( 0 )|  00 : 00 : 01  |
|    2  |   TABLE ACCESS BY INDEX ROWID| MASTER_CLUSTER |     33  |    891  |     12    ( 0 )|  00 : 00 : 01  |
|*   3  |    INDEX RANGE SCAN          | DOCDATE_CI     |     33  |       |      2    ( 0 )|  00 : 00 : 01  |
|    4  |   TABLE ACCESS CLUSTER       | DETAIL_CLUSTER |    547  |   6017  |      1    ( 0 )|  00 : 00 : 01  |
|*   5  |    INDEX UNIQUE SCAN         | IDX_CLSTR      |      1  |       |      0    ( 0 )|  00 : 00 : 01  |
-----------------------------------------------------------------------------------------------

Predicate Information (identified by operation id):
---------------------------------------------------

    3  - access("M"."DOCDATE">=TO_DATE(' 2007-05-26 00:00:00', 'syyyy-mm-dd hh24:mi:ss')
              AND "M"."DOCDATE"<=TO_DATE(' 2007-06-03 00:00:00', 'syyyy-mm-dd hh24:mi:ss'))
    5  - access("M"."ID_OP"="D"."ID_OP")


Statistics
----------------------------------------------------------
           1   recursive calls
           0   db block gets
         239   consistent gets
           0   physical reads
           0   redo size
       16343   bytes sent via SQL*Net to client
        1389   bytes received via SQL*Net from client
          98   SQL*Net roundtrips to/from client
           0   sorts (memory)
           0   sorts (disk)
        1446   rows processed
...
Рейтинг: 0 / 0
Чем Oracle отличается от SQL Server
    #35601770
Yo.!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
выглядит что загрузить в МС миллион записей из sql-файлика уже не тривиальная задача. management studio sql скрипты загрузить не способна, можно только с консольных утилит. в sqlcmd если insert стейтменты разделять командой go - отключить транзакции не возможно, выполнение растягивается на века, если обрамить в begin/commit tran - вываливается с Scripting error. разбивание на 4 части ситуацию не спасает. есть предложения как в МС сервер загрузить обычный SQL скрипт в 100мб ?

ЗЫ. этот же файлик в оракл вошел со свистом, т.е. синтаксически верен.
...
Рейтинг: 0 / 0
Чем Oracle отличается от SQL Server
    #35601922
AAron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
скорее всего вы генерировали этот файлик. могу предложить заменить sql-конструкции на, скажем csv. тогда залить его можно будет, например, командой tsql - insert bulk. либо импортировать при помощи того же SSIS.

хочу отметить, в силу однопоточности процесса импорта, скорость будет ограничена либо процессором, либо диском.
...
Рейтинг: 0 / 0
Чем Oracle отличается от SQL Server
    #35601957
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yo.!выглядит что загрузить в МС миллион записей из sql-файлика уже не тривиальная задача. management studio sql скрипты загрузить не способна, можно только с консольных утилит. в sqlcmd если insert стейтменты разделять командой go - отключить транзакции не возможно, выполнение растягивается на века, если обрамить в begin/commit tran - вываливается с Scripting error. разбивание на 4 части ситуацию не спасает. есть предложения как в МС сервер загрузить обычный SQL скрипт в 100мб ?

ЗЫ. этот же файлик в оракл вошел со свистом, т.е. синтаксически верен.RTFM : SET IMPLICIT_TRANSACTIONS, bcp, BULK INSERT
...
Рейтинг: 0 / 0
Чем Oracle отличается от SQL Server
    #35602371
Yo.!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
наконец удалось прогнать тестик и на mssql2005 sp2. выполнялось на двух идентичных IBM серверах, разница в кол-ве процев и памяти, у мсскл было 4 против 16гб оракла и 1 против 2х процев, но поскольку тест задействует лишь одно ядро и памяти хватало, то в принципе результаты можно сравнивать и в лоб:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
create cluster emp_dept_cluster (deptno number( 4 )) size  8192  ;
/
create index emp_dept_cluster_idx on cluster emp_dept_cluster ;
/
create table dept (deptno number( 4 ) primary key, dname varchar2 ( 14 ) , loc varchar2( 13 ) ) cluster emp_dept_cluster (deptno) ;
/
create table emp (empno number primary key, ename varchar2( 10 ) , job varchar2( 9 ), mgr number, deptno number( 4 ) references dept(deptno) ) cluster emp_dept_cluster(deptno) ;
/

теперь загружаем данные в таблички:
SQL>@/tmp/data.sql ;

SQL> set timing on;                                                                                                                           
SQL> set autotrace on;    

сбрасываем кеш:
SQL> alter system flush buffer_cache ;                                                              
System altered.

Elapsed:  00 : 00 : 00 . 65 
SQL> select max(mgr), max(ename), max(dname) from emp e, dept d where e.deptno=d.deptno and e.deptno between  300  and  802  ;

  MAX(MGR) MAX(ENAME) MAX(DNAME)
---------- ---------- --------------
	  8  PPPIICGIFH PLPHFIMDHKILAE

Elapsed:  00 : 00 : 00 . 37 

Execution Plan
----------------------------------------------------------
Plan hash value:  2433249631 

------------------------------------------------------------------------------------------------

| Id  | Operation		| Name		       | Rows  | Bytes | Cost (%CPU)| Time     |

------------------------------------------------------------------------------------------------

|    0  | SELECT STATEMENT	|		       |      1  |     37  |   1018  ( 1 )|  00 : 00 : 13  |

|    1  |  SORT AGGREGATE 	|		       |      1  |     37  |    |	       |

|    2  |   MERGE JOIN		|		       |   253K|  9166K|   1018  ( 1 )|  00 : 00 : 13  |

|    3  |    TABLE ACCESS CLUSTER | EMP		       |   502K|  8829K|    508  ( 0 )|  00 : 00 : 07  |

|*   4  |     INDEX RANGE SCAN	| EMP_DEPT_CLUSTER_IDX |      1  |       |      3  ( 0 )|  00 : 00 : 01  |

|*   5  |    SORT JOIN		|		       |    505  |   9595  |    509  ( 1 )|  00 : 00 : 07  |

|    6  |     TABLE ACCESS CLUSTER| DEPT		       |    505  |   9595  |    508  ( 0 )|  00 : 00 : 07  |

|*   7  |      INDEX RANGE SCAN	| EMP_DEPT_CLUSTER_IDX |      1  |       |      3  ( 0 )|  00 : 00 : 01  |

------------------------------------------------------------------------------------------------


Predicate Information (identified by operation id):
---------------------------------------------------

    4  - access("E"."DEPTNO">= 300  AND "E"."DEPTNO"<= 802 )
    5  - access("E"."DEPTNO"="D"."DEPTNO")
       filter("E"."DEPTNO"="D"."DEPTNO")
    7  - access("D"."DEPTNO">= 300  AND "D"."DEPTNO"<= 802 )


Statistics
----------------------------------------------------------
	   0   recursive calls
	   0   db block gets
        5036   consistent gets
        2576   physical reads
	   0   redo size
	 677   bytes sent via SQL*Net to client
	 492   bytes received via SQL*Net from client
	   2   SQL*Net roundtrips to/from client
	   1   sorts (memory)
	   0   sorts (disk)
	   1   rows processed



Теперь SQL SERVER

create table dept (deptno numeric( 4 ) primary key, dname varchar ( 14 ) , loc varchar( 13 ) ) 

create table emp (empno int primary key, ename varchar( 10 ) , job varchar( 9 ), mgr int, deptno numeric( 4 ) )

теперь  5  часов е"@мся с кривыми утилитами sqlcmd и osql, понимаем что в одной транзакции запихнуть миллион записей ими не реально, запускаем скрипт наночь.

create index em_deptno_idx on emp(deptno)

команды сброса кеша не знаем, делаем стоп/старт сервису мсскл.

SET STATISTICS TIME ON
GO

SET STATISTICS IO ON
GO

select max(mgr), max(ename), max(dname) from emp e, dept d where e.deptno=d.deptno and e.deptno between 300 and 802

Таблица "dept". Число просмотров 1, логических чтений 6, физических чтений 1, упреждающих чтений 4, lob логических чтений 0, lob физических чтений 0, lob упреждающих чтений 0.
Таблица "emp". Число просмотров 5, логических чтений 5919, физических чтений 2, упреждающих чтений 5834, lob логических чтений 0, lob физических чтений 0, lob упреждающих чтений 0.
Таблица "Worktable". Число просмотров 0, логических чтений 0, физических чтений 0, упреждающих чтений 0, lob логических чтений 0, lob физических чтений 0, lob упреждающих чтений 0.
Таблица "Worktable". Число просмотров  0 , логических чтений  0 , физических чтений  0 , упреждающих чтений  0 , lob логических чтений  0 , lob физических чтений  0 , lob упреждающих чтений  0 .

( 1  row(s) affected)

Время выполнения SQL Server:
 Время ЦП =  1046  мс, истекшее время =  464  мс.
Время синтаксического анализа и компиляции SQL Server: 
 время ЦП =  0  мс, истекшее время =  1  мс.

Время выполнения SQL Server:
 Время ЦП =  0  мс, истекшее время =  1  мс.

...
Рейтинг: 0 / 0
Чем Oracle отличается от SQL Server
    #35602382
Yo.!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hvlad
ЗЫ. этот же файлик в оракл вошел со свистом, т.е. синтаксически верен.RTFM : SET IMPLICIT_TRANSACTIONS, bcp, BULK INSERT[/quot]
я обрамил все инсерты конструкцией begin/commit tran, sqlcmd через несколько минут вываливается с Scripting error, osql три часа насилует проц и вываливается с каким-то сообщением на аброкадабре (мс когда нибудь проблему шрифтов решит ?). пытался разбить на четыре транзакции - тот же фифект.

бцп не осилил, может ли он обычный скрипт прогнать
C:\temp>bcp -i c:\temp\data-ms3.sql -e c:\temp\sql9.txt
Направление копирования должно иметь значение "in", "out" или "format".
...
Рейтинг: 0 / 0
Чем Oracle отличается от SQL Server
    #35602448
Yo.!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
забыл прицепить файлики с данными:
http://triffids.googlepages.com/data-ms.rar
http://triffids.googlepages.com/data-oracle.rar

генерировались одним скриптом.
у обоих баз 8К страница (db_block_size), а вот с уникодом надо проверить, оракл AL32UTF8, непомню, английские символы в 2 байта хранит или в одном. у МС Cyrillic_General_CI_AS, как я понимаю не уникод.

вот, более впечатляющий отрыв:
select max(mgr), max(ename), max(dname) from emp e, dept d where e.deptno=d.deptno and e.deptno in (100, 400, 700, 850, 15, 955)

МССКЛ:
Таблица "dept". Число просмотров 1, логических чтений 8, физических чтений 1, упреждающих чтений 6, lob логических чтений 0, lob физических чтений 0, lob упреждающих чтений 0.
Таблица "emp". Число просмотров 5, логических чтений 5919, физических чтений 1, упреждающих чтений 5835, lob логических чтений 0, lob физических чтений 0, lob упреждающих чтений 0.
Таблица "Worktable". Число просмотров 0, логических чтений 0, физических чтений 0, упреждающих чтений 0, lob логических чтений 0, lob физических чтений 0, lob упреждающих чтений 0.
Таблица "Worktable". Число просмотров 0, логических чтений 0, физических чтений 0, упреждающих чтений 0, lob логических чтений 0, lob физических чтений 0, lob упреждающих чтений 0.

(1 row(s) affected)

Время выполнения SQL Server:
Время ЦП = 357 мс, истекшее время = 351 мс.
Время синтаксического анализа и компиляции SQL Server:
время ЦП = 0 мс, истекшее время = 1 мс.

Время выполнения SQL Server:
Время ЦП = 0 мс, истекшее время = 1 мс.

Оракл:
SQL> alter system flush buffer_cache ; System altered.
Elapsed: 00:00:00.47
SQL> select max(mgr), max(ename), max(dname) from emp e, dept d where e.deptno=d.deptno and e.deptno in (100, 400, 700, 850, 15, 955) ;

MAX(MGR) MAX(ENAME) MAX(DNAME)
---------- ---------- --------------
8 POHFDIFEHF MIELHJPBFNKJIN

Elapsed: 00:00:00.01

Execution Plan
----------------------------------------------------------
Plan hash value: 2351653054

--------------------------------------------------------------------------------
----------------

| Id | Operation | Name | Rows | Bytes | Cost (%
CPU)| Time |

--------------------------------------------------------------------------------
----------------

| 0 | SELECT STATEMENT | | 1 | 37 | 18
(6)| 00:00:01 |

| 1 | SORT AGGREGATE | | 1 | 37 |
| |

|* 2 | HASH JOIN | | 36 | 1332 | 18
(6)| 00:00:01 |

| 3 | INLIST ITERATOR | | | |
| |

| 4 | TABLE ACCESS CLUSTER| DEPT | 6 | 114 | 8
(0)| 00:00:01 |

|* 5 | INDEX RANGE SCAN | EMP_DEPT_CLUSTER_IDX | 1 | | 2
(0)| 00:00:01 |

| 6 | INLIST ITERATOR | | | |
| |

| 7 | TABLE ACCESS CLUSTER| EMP | 5980 | 105K| 9
(0)| 00:00:01 |

|* 8 | INDEX RANGE SCAN | EMP_DEPT_CLUSTER_IDX | 1 | | 2
(0)| 00:00:01 |

--------------------------------------------------------------------------------
----------------


Predicate Information (identified by operation id):
---------------------------------------------------

2 - access("E"."DEPTNO"="D"."DEPTNO")
5 - access("D"."DEPTNO"=15 OR "D"."DEPTNO"=100 OR "D"."DEPTNO"=400 OR
"D"."DEPTNO"=700 OR "D"."DEPTNO"=850 OR "D"."DEPTNO"=955)
8 - access("E"."DEPTNO"=15 OR "E"."DEPTNO"=100 OR "E"."DEPTNO"=400 OR
"E"."DEPTNO"=700 OR "E"."DEPTNO"=850 OR "E"."DEPTNO"=955)


Statistics
----------------------------------------------------------
0 recursive calls
0 db block gets
84 consistent gets
104 physical reads
0 redo size
677 bytes sent via SQL*Net to client
492 bytes received via SQL*Net from client
2 SQL*Net roundtrips to/from client
0 sorts (memory)
0 sorts (disk)
1 rows processed
...
Рейтинг: 0 / 0
Чем Oracle отличается от SQL Server
    #35602620
longraw
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yo.! Все ваши героические труды пропали даром. Совершенно неясно, что вы сравнили. И как. В вашем втором тесткейсе получается что Оракл некоторое количество блоков взял из кеша виндов, что он очень любит делать, и это ему огромный плюс. А Оракл зачитал с диска. При этом Оракл в 321 раз быстрее.
Не, ну я сам видел что Оракл процентов на 20 быстрее. Но не в 371 раз же.
Низачот по Ораклу.
Если pkarklin какие нибудь циферки приведет, будет интесно посмотреть насколько он знает MS SQL. Что-то мне подсказывает что примерно так же как Вы Оракл.
...
Рейтинг: 0 / 0
Чем Oracle отличается от SQL Server
    #35602631
Yo.!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2longraw

а какая разница что там в кеше виндов/контроллера ? смотрите кол-во физических чтений, которые понадобились обоим субд. причем, походу, получился красивый пример херовости оптимизатора мсскл, в оракле у меня даже без кластера на порядок меньше чтений выходит. подождем разьяснений pkarklin, план в мсскл получается такой:
select max(mgr), max(ename), max(dname) from emp e, dept d where e.deptno=d.deptno and e.deptno in (100, 400, 700, 850, 15, 955)

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
 |--Stream Aggregate(DEFINE:([Expr1004]=MAX([partialagg1007]), [Expr1005]=MAX([partialagg1008]), [Expr1006]=MAX([partialagg1009])))
       |--Parallelism(Gather Streams)
            |--Stream Aggregate(DEFINE:([partialagg1007]=MAX([TESTDB].[dbo].[emp].[mgr] as [e].[mgr]), [partialagg1008]=MAX([TESTDB].[dbo].[emp].[ename] as [e].[ename]), [partialagg1009]=MAX([TESTDB].[dbo].[dept].[dname] as [d].[dname])))
                 |--Hash Match(Inner Join, HASH:([d].[deptno])=([e].[deptno]), RESIDUAL:([TESTDB].[dbo].[emp].[deptno] as [e].[deptno]=[TESTDB].[dbo].[dept].[deptno] as [d].[deptno]))
                      |--Parallelism(Distribute Streams, Hash Partitioning, PARTITION COLUMNS:([d].[deptno]))
                      |    |--Nested Loops(Inner Join, OUTER REFERENCES:([Expr1016], [Expr1017], [Expr1018]))
                      |         |--Merge Interval
                      |         |    |--Concatenation
                      |         |         |--Compute Scalar(DEFINE:(([Expr1011],[Expr1012],[Expr1010])=GetRangeWithMismatchedTypes((15.),NULL,(22))))
                      |         |         |    |--Constant Scan
                      |         |         |--Compute Scalar(DEFINE:(([Expr1014],[Expr1015],[Expr1013])=GetRangeWithMismatchedTypes(NULL,(955.),(42))))
                      |         |              |--Constant Scan
                      |         |--Clustered Index Seek(OBJECT:([TESTDB].[dbo].[dept].[PK__dept__7C8480AE] AS [d]), SEEK:([d].[deptno] > [Expr1016] AND [d].[deptno] < [Expr1017]) ORDERED FORWARD)
                      |--Parallelism(Repartition Streams, Hash Partitioning, PARTITION COLUMNS:([e].[deptno]))
                           |--Clustered Index Scan(OBJECT:([TESTDB].[dbo].[emp].[PK__emp__7E6CC920] AS [e]), WHERE:([TESTDB].[dbo].[emp].[deptno] as [e].[deptno]=(15.) OR [TESTDB].[dbo].[emp].[deptno] as [e].[deptno]=(100.) OR [TESTDB].[dbo].[emp].[deptno] as [e].[deptno]=(400.) OR [TESTDB].[dbo].[emp].[deptno] as [e].[deptno]=(700.) OR [TESTDB].[dbo].[emp].[deptno] as [e].[deptno]=(850.) OR [TESTDB].[dbo].[emp].[deptno] as [e].[deptno]=(955.)))
...
Рейтинг: 0 / 0
Чем Oracle отличается от SQL Server
    #35602778
longraw
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yo.! У Мелкософта я не вижу кластера вообще.
А так я Вас поздравляю - у Микрософта план распараллелился на несколько ядер, из-за настроек сервака. Вот когда Вы увидите у Оракла PX_COORDINATOR и вообще параллелизм без хинтов и энфорса - тогда и будем сравнивать. У мелкомягких он есть в этом примере, но видимо потому что кластера нет.
...
Рейтинг: 0 / 0
Чем Oracle отличается от SQL Server
    #35602862
Yo.!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
longraw Yo.! У Мелкософта я не вижу кластера вообще.
собственно эту нехитрую мысль мы и пытаемся донести, нет у МС аналога понятию кластера в оракле.

longraw
А так я Вас поздравляю - у Микрософта план распараллелился на несколько ядер, из-за настроек сервака. Вот когда Вы увидите у Оракла PX_COORDINATOR и вообще параллелизм без хинтов и энфорса - тогда и будем сравнивать. У мелкомягких он есть в этом примере, но видимо потому что кластера нет.
оракл справился с физическим чтением и джойном за 1мс, чего там параллелить, если в кластере уже джоинутые данные лежат ? по графическому плану затраты на паралелизм мсскл были 19%, при том что 80% сьела операция чтение индекса. т.е. 19% времени ушло на распараллеливание 1% запроса.
дальше, как я понял МС вместо range scan ошибочно применяет insex scan и читает весь индекс, откуда и взялось "упреждающих чтений 5835".

ЗЫ. к стате как получить стоимость операции в текстовом плане МС ?
...
Рейтинг: 0 / 0
Чем Oracle отличается от SQL Server
    #35602872
Yo.!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
файлики с данными на гугл чего-то не залились, переложил сюда:
http://rapidshare.com/files/155447716/data-ms.rar
http://rapidshare.com/files/155448427/data-oracle.rar
...
Рейтинг: 0 / 0
25 сообщений из 248, страница 8 из 10
Форумы / Сравнение СУБД [игнор отключен] [закрыт для гостей] / Чем Oracle отличается от SQL Server
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]