Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Сравнение СУБД Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 .. 4 5 6 7 8 [9] 10 11 12 13 .. 31   вперед  Ctrl
 Re: MS SQL > Oracle = True?  [new]
Karpol
Member

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

1. у оракла гораздо богаче sql и нужды создавать налету временые таблицы просто нет. вместо этой босполезной фичи то в оракле можно создавать view , тригеры и т.п. на временые таблицы.

Я как раз не вижу большого преимущества Оракловой временной таблицы по сравнению с обычной. А временная таблица MS SQL это принципиально другой инструмент, применять который дело вкуса, лишь бы была вообще такая возможность.
22 дек 04, 13:35    [1200121]     Ответить | Цитировать Сообщить модератору
 Re: MS SQL > Oracle = True?  [new]
Gluk (Kazan)
Member

Откуда:
Сообщений: 9365
cocainum
Gluk (Kazan)
А как ислользовать pipeline функции, что не ясно ???


Все время вылетает из головы... Напомните, что пишут ораклоиды вместо

select a, b from t

???


Лично я это и пишу, на клиенте.
Еще раз для непонятливых анонимов повторяю:

автор
С заведомыми дураками (или провокаторами) предпочитаю не общаться
22 дек 04, 13:37    [1200132]     Ответить | Цитировать Сообщить модератору
 Re: MS SQL > Oracle = True?  [new]
alex-ls
Member

Откуда: Иркутская обл - Пенза - Москва
Сообщений: 7078
cocainum
Gluk (Kazan)
А как ислользовать pipeline функции, что не ясно ???


Все время вылетает из головы... Напомните, что пишут ораклоиды вместо

select a, b from t

???

Interaction Between PL/SQL and Oracle

CREATE PACKAGE emp_data AS
...
TYPE EmpCurTyp IS REF CURSOR RETURN emp%ROWTYPE;
PROCEDURE open_emp_cv (emp_cv IN OUT EmpCurTyp);
END emp_data;

CREATE PACKAGE BODY emp_data AS
...
PROCEDURE open_emp_cv (emp_cv IN OUT EmpCurTyp) IS
BEGIN
OPEN emp_cv FOR SELECT * FROM emp;
END open_emp_cv;
END emp_data;
22 дек 04, 13:43    [1200160]     Ответить | Цитировать Сообщить модератору
 Re: MS SQL > Oracle = True?  [new]
cocainum
Guest
Gluk (Kazan)
cocainum
Gluk (Kazan)
А как ислользовать pipeline функции, что не ясно ???


Все время вылетает из головы... Напомните, что пишут ораклоиды вместо

select a, b from t

???


Лично я это и пишу, на клиенте.
Еще раз для непонятливых анонимов повторяю:

автор
С заведомыми дураками (или провокаторами) предпочитаю не общаться


О, Вы пишете pipelined функции на клиенте... Фукин щит...
22 дек 04, 13:44    [1200172]     Ответить | Цитировать Сообщить модератору
 Re: MS SQL > Oracle = True?  [new]
Vadim_Maximov
Member

Откуда: Москва
Сообщений: 3571
Уважаемый анонимный cocaine - не тупите плз, Gluk (Kazan) имел в виду, что он пишет на клиенте просто "select a, b from table"!
22 дек 04, 13:52    [1200206]     Ответить | Цитировать Сообщить модератору
 Re: MS SQL > Oracle = True?  [new]
DimaR
Member

Откуда:
Сообщений: 1570
По поводу возврвтв набора данных из функций
(полный оригинал https://www.sql.ru/forum/actualthread.aspx?tid=84306&hl=%e8%e7%e2%f0%e0%f9%e5%ed%e8%e5#611108)
Под 10g

Выполни вложеный скриптик,

А затем запрос

Параметры, количество
  A - столбцы
  B - строки

Результат таблица умножения

  select * from TABLE(mult_table(10,10));

AB	A1	A2	A3	A4	A5	A6	A7	A8	A9	A10
B1	1	2	3	4	5	6	7	8	9	10
B2	2	4	6	8	10	12	14	16	18	20
B3	3	6	9	12	15	18	21	24	27	30
B4	4	8	12	16	20	24	28	32	36	40
B5	5	10	15	20	25	30	35	40	45	50
B6	6	12	18	24	30	36	42	48	54	60
B7	7	14	21	28	35	42	49	56	63	70
B8	8	16	24	32	40	48	56	64	72	80
B9	9	18	27	36	45	54	63	72	81	90
B10	10	20	30	40	50	60	70	80	90	100


ps. A и B могут принимать любые значения
22 дек 04, 13:54    [1200217]     Ответить | Цитировать Сообщить модератору
 Re: MS SQL > Oracle = True?  [new]
www.fun4me.narod.ru
Member

Откуда: Moscow
Сообщений: 2406
Ну ладно, я понял. Вы с автором статьи имеете ввиду разные версии Оракла. Десятка-то недавно вышла.
22 дек 04, 13:58    [1200234]     Ответить | Цитировать Сообщить модератору
 Re: MS SQL > Oracle = True?  [new]
Dooma
Guest
Yo!
1. у оракла гораздо богаче sql и нужды создавать налету временые таблицы просто нет. вместо этой босполезной фичи то в оракле можно создавать view , тригеры и т.п. на временые таблицы.
2. на ODBC с ораклом работают только те у кого другого выхода нет (или немогут выучить что-то другое).

Ораклисты! убейте этого подростка Yo! пока он вас окончательно не опозорил во всех ветках
22 дек 04, 14:00    [1200243]     Ответить | Цитировать Сообщить модератору
 Re: MS SQL > Oracle = True?  [new]
Drema
Member

Откуда: Москва
Сообщений: 249
AAron
2Drema
А Вы автор?


Нет, но автор здесь.

alex-ls
Хотя там править нечего, она в корне ошибочная!


"Неправильная статья" в общем..:)

Бредовая статья. Особенно "понравились" "преимущества" MSSQL временных таблиц перед Оракловыми и получение данных из процедур, заявленное как "преимущество"...


Может наконец стоит разобраться с терминами и их назначениями?
22 дек 04, 14:05    [1200264]     Ответить | Цитировать Сообщить модератору
 Re: MS SQL > Oracle = True?  [new]
Gluk (Kazan)
Member

Откуда:
Сообщений: 9365
Под 8i TABLE распрекрасно работает
22 дек 04, 14:05    [1200265]     Ответить | Цитировать Сообщить модератору
 Re: MS SQL > Oracle = True?  [new]
DimaR
Member

Откуда:
Сообщений: 1570
Кто расскажет как на других базах делается, то о чем я написал?

ps. (ACCESS в расчет не берем :)
22 дек 04, 14:09    [1200277]     Ответить | Цитировать Сообщить модератору
 Re: MS SQL > Oracle = True?  [new]
DimaR
Member

Откуда:
Сообщений: 1570
www.fun4me.narod.ru
Ну ладно, я понял. Вы с автором статьи имеете ввиду разные версии Оракла. Десятка-то недавно вышла.


10 месяцев назад я скачивал,
(в исторических маштабах, конечно недавно)
22 дек 04, 14:12    [1200291]     Ответить | Цитировать Сообщить модератору
 Re: MS SQL > Oracle = True?  [new]
www.fun4me.narod.ru
Member

Откуда: Moscow
Сообщений: 2406
>> Под 8i TABLE распрекрасно работает

Да. Вот в скриптах для 8.1.7 нашёл такое: select ... from ..., table(col)
22 дек 04, 14:13    [1200299]     Ответить | Цитировать Сообщить модератору
 Re: MS SQL > Oracle = True?  [new]
alex-ls
Member

Откуда: Иркутская обл - Пенза - Москва
Сообщений: 7078
DimaR
Кто расскажет как на других базах делается, то о чем я написал?

ps. (ACCESS в расчет не берем :)

Все же одно дело иметь свое личное мнение по какому-то вопросу. И совершенно другое, публиковать его в СМИ под видом научной статьи. Эдак можно не одного начинающего программиста поставить на "неистинный" путь.
22 дек 04, 14:21    [1200348]     Ответить | Цитировать Сообщить модератору
 Re: MS SQL > Oracle = True?  [new]
Markelenkov
Member

Откуда:
Сообщений: 2312
Gluk (Kazan)
Все одно безграмотно, кто мешает в Oracle сделать:

       select sum(Cost*Kolvo)
       into   nSum
       from   account
       where  id = 2556

Результат станет тот-же, что и в MSSQL. Дальше читать было не интересно

Я дочитал до конца, правда, с трудом.

Александр Karpol
Подытоживая, можно сказать, что MS SQL более простая и удобная СУБД и пользоваться ею можно не имея большого запаса знаний

Это заметно
22 дек 04, 15:14    [1200680]     Ответить | Цитировать Сообщить модератору
 Re: MS SQL > Oracle = True?  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 67383
Блог
www.fun4me.narod.ru

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

Думаю, если начинать большой разговор по этому поводу, я сумею доказать Вам, что они в Оракле есть (я не имею в виду GLOBAL TEMPORARY TABLE - они, само собой, есть). Что касается "временных таблиц" в понимании MS SQL - имхо, они уступают оракловским примерно так же, как IDENTITY уступает SEQUENCE-у.

www.fun4me.narod.ru

А получение данных в MSSQL из процедуры без заведения курсорной переменной - именно преимущество.

Ээ.. Над чем, простите?
22 дек 04, 16:38    [1201230]     Ответить | Цитировать Сообщить модератору
 Re: MS SQL > Oracle = True?  [new]
segun
Member

Откуда: Москва
Сообщений: 504
softwarer
Что касается "временных таблиц" в понимании MS SQL - имхо, они уступают оракловским примерно так же, как IDENTITY уступает SEQUENCE-у.
даже Том Кайт в своей книге в отношении временных таблиц почему-то говорит обратное.
22 дек 04, 17:33    [1201593]     Ответить | Цитировать Сообщить модератору
 Re: MS SQL > Oracle = True?  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 67383
Блог
segun
даже Том Кайт в своей книге в отношении временных таблиц почему-то говорит обратное.

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

Во-вторых, книга Кайта, при всех ее огромных достоинствах, все же относится к версии Oracle - почти что ровестнице MSSQL 6.

Наконец - я с большой благодарностью воспринял информацию из этой книги, и с большим уважением отношусь к его мнению, но не считаю себя связанным им.
22 дек 04, 18:13    [1201848]     Ответить | Цитировать Сообщить модератору
 Re: MS SQL > Oracle = True?  [new]
segun
Member

Откуда: Москва
Сообщений: 504
из вашего ответа видно что если я и приведу точную цитату это не изменит вашего мнения. Меня больше интересует вопрос почему. Итак, почему они уступают оракловским?
22 дек 04, 18:19    [1201879]     Ответить | Цитировать Сообщить модератору
 Re: MS SQL > Oracle = True?  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 67383
Блог
segun
из вашего ответа видно что если я и приведу точную цитату это не изменит вашего мнения.

Точнее, я не обязуюсь его изменить. Я не помню этого места, поэтому в принципе допускаю, что там содержится нечто, что меня переубедит - однако, считаю это маловероятным (поскольку я бы это, скорее всего, запомнил).

segun
Меня больше интересует вопрос почему. Итак, почему они уступают оракловским?

По комбинации двух утверждений:

1. Средствами, предоставляемыми Ораклом, решаются все возникающие задачи в этой области.

2. Эти средства концептуально продуманны и идеологически выверены, что про "создание на ходу" лично я не скажу.

Что касается первого пункта - я не видел ни одного примера нормального MSSQL-ного кода, который нельзя было бы нормально же расписать на Оракле. Если увижу и сочту нормальным - изменю свое мнение, но более вероятно - укажу на (с моей точки зрения) ошибку в проектировании, прикрываемую возможностями интерпретатора.

Что касается второго - достаточно искусный и достаточно упертый оппонент, полагаю, сможет отстоять против меня позицию "это вопрос вкусов", поэтому предлагаю на ней и сойтись.
22 дек 04, 18:42    [1201969]     Ответить | Цитировать Сообщить модератору
 Re: MS SQL > Oracle = True?  [new]
dimitr
Member

Откуда: PNZ
Сообщений: 7000
Господа. Убедительная просьба продолжить тему временных таблиц (если таковое обсуждение интересно присутствующим) в новом топике форума. С удовольствием поучаствую. Но из данного топика уже сделали мусорную яму :-(
22 дек 04, 19:22    [1202059]     Ответить | Цитировать Сообщить модератору
 Re: MS SQL > Oracle = True?  [new]
alex-ls
Member

Откуда: Иркутская обл - Пенза - Москва
Сообщений: 7078
Все же тему предлагаю не закрывать! Хотелось бы все-таки получить ответы от тех, кому я выслал тестовые данные...
Если ничего не выйдет постараюсь придумать, как сформировать синтетически новые данные, но это будет готово как минимум после Нового.
23 дек 04, 08:19    [1202653]     Ответить | Цитировать Сообщить модератору
 Re: MS SQL > Oracle = True?  [new]
Gluk (Kazan)
Member

Откуда:
Сообщений: 9365
dimitr
Но из данного топика уже сделали мусорную яму :-(


А по мне, так он изначально был таким
23 дек 04, 08:27    [1202667]     Ответить | Цитировать Сообщить модератору
 Re: MS SQL > Oracle = True?  [new]
StalkerS
Member

Откуда: Melbourne
Сообщений: 1344
declare @elem int, @level int
select @elem=232507, @level=0 -- @elem - элемент, с которого начинаем поиск подузлов

declare @wave table (parent int null, child int null, level int)

insert into @wave
select *, @level
from tree
where child=@elem

while @@rowcount>0
begin

select @level=@level+1

insert into @wave
select t.parent, coalesce(t.child,w.parent), @level
from @wave w
left join tree t on w.parent=t.child
where w.level=@level-1 and w.parent is not null

end

select distinct child from @wave


Данный код, на присланных мне данных, выдает 23 записи, практически мгновенно.
Индекс по обеим полям, по полю child - кластерный.
Хотя, судя по плану исполнения, можно обойтись только одним кластерным по child.

Р-III, 700 Мгц, 524 RAM. (компьтер, как видим, не навороченный, просто сервер загружать неохота).

Напиши, какой элемент должен выдавать 97 записей, уровень его вложенности.

Для эксперимента, я создавал таблицу 100000 записей, где вложенность была выстроена в цепочку,
т.е. каждый последующий элемент являлся потомком предыдущего.
Итого, когда я запустил данный запрос для поиска детей 99999 элемента, мой комп думал в районе получаса.
Долго конечно, но и вложенность - 100000 !
Когда вложенность низкая, результат почти мгновенно.
23 дек 04, 10:23    [1203005]     Ответить | Цитировать Сообщить модератору
 Re: MS SQL > Oracle = True?  [new]
alex-ls
Member

Откуда: Иркутская обл - Пенза - Москва
Сообщений: 7078
Как видно первое выполнение 50 мс, последующие около 15 мс. Код виден в примере. Индекс один по parent_. Если у тебе будет работать быстрее 15 мс, то я тебя поздравляю. Да и не забудь засветить свой код в любом случае.

SQL*Plus: Release 8.1.7.0.0 - Production on Чтв Дек 23 10:36:11 2004

(c) Copyright 2000 Oracle Corporation.  All rights reserved.


Connected to:
Oracle9i Enterprise Edition Release 9.2.0.1.0 - Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.1.0 - Production

SQL> set timing on
SQL> set autotrace on
SQL> select count(*)
  2  from elsi_omptest.tree
  3  connect by parent_ = prior child_
  4  start with parent_=309158;

  COUNT(*)
----------
        97

Elapsed: 00:00:00.50

Execution Plan
----------------------------------------------------------
   0      SELECT STATEMENT Optimizer=CHOOSE
   1    0   SORT (AGGREGATE)
   2    1     CONNECT BY (WITH FILTERING)
   3    2       NESTED LOOPS
   4    3         INDEX (RANGE SCAN) OF 'IND_PARENT' (NON-UNIQUE)
   5    3         TABLE ACCESS (BY USER ROWID) OF 'TREE'
   6    2       NESTED LOOPS
   7    6         BUFFER (SORT)
   8    7           CONNECT BY PUMP
   9    6         TABLE ACCESS (BY INDEX ROWID) OF 'TREE'
  10    9           INDEX (RANGE SCAN) OF 'IND_PARENT' (NON-UNIQUE)




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

SQL> select count(*)
  2  from elsi_omptest.tree
  3  connect by parent_ = prior child_
  4  start with parent_=309158;

  COUNT(*)
----------
        97

Elapsed: 00:00:00.15

Execution Plan
----------------------------------------------------------
   0      SELECT STATEMENT Optimizer=CHOOSE
   1    0   SORT (AGGREGATE)
   2    1     CONNECT BY (WITH FILTERING)
   3    2       NESTED LOOPS
   4    3         INDEX (RANGE SCAN) OF 'IND_PARENT' (NON-UNIQUE)
   5    3         TABLE ACCESS (BY USER ROWID) OF 'TREE'
   6    2       NESTED LOOPS
   7    6         BUFFER (SORT)
   8    7           CONNECT BY PUMP
   9    6         TABLE ACCESS (BY INDEX ROWID) OF 'TREE'
  10    9           INDEX (RANGE SCAN) OF 'IND_PARENT' (NON-UNIQUE)




Statistics
----------------------------------------------------------
          0  recursive calls
          0  db block gets
        193  consistent gets
          0  physical reads
          0  redo size
        295  bytes sent via SQL*Net to client
        421  bytes received via SQL*Net from client
          2  SQL*Net roundtrips to/from client
          7  sorts (memory)
          0  sorts (disk)
          1  rows processed
23 дек 04, 10:46    [1203113]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 .. 4 5 6 7 8 [9] 10 11 12 13 .. 31   вперед  Ctrl
Все форумы / Сравнение СУБД Ответить