Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle [игнор отключен] [закрыт для гостей] / На философию потянуло... / 25 сообщений из 139, страница 1 из 6
28.06.2006, 15:49
    #33819639
andrey_anonymous
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
На философию потянуло...
Господа, у меня образовалось немного времени и со страшной силой потянуло на философию :)
И размышляю я на тему "а какого лешегшо мне не хватает в СУБД Oracle"?
Кто не против отвлеченной философии - присоединяйтесь :)

Итак, для затравки - мне не хватает:

1) конструкции вроде

Код: plaintext
1.
2.
3.
insert into table x 
select ... from 
    table( delete table y where ... ) 
where... [group by...];

т.е. получать курсор из операции delete.
Это позволило бы существенно упростить логику трансформации предварительных данных.

2) сегмента с организацией queue. В AQ oracle выкручивается на обычных индексированных таблицах, но накладные расходы этой эмуляции довольно значительны...
...
Рейтинг: 0 / 0
28.06.2006, 15:55
    #33819663
MacDuck
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
На философию потянуло...
andrey_anonymousГоспода, у меня образовалось немного времени и со страшной силой потянуло на философию :)


Иди рождение сына обмывай и жену поздравляй! На философию его потянуло....
ТЫ обязан уже мертвецки пьяным быть!
...
Рейтинг: 0 / 0
28.06.2006, 16:10
    #33819719
Apex
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
На философию потянуло...
andrey_anonymous
т.е. получать курсор из операции delete.
Это позволило бы существенно упростить логику трансформации предварительных данных.

Вчера был на семинаре по DB2, жутко позавидовал присутствию данной возможности в IBM'овской СУБД.

Лично мне еще не хватает возможности создания бОльшего числа buffer pool'ов, подсмотрено опять же у DB2.
...
Рейтинг: 0 / 0
28.06.2006, 16:17
    #33819744
!
!
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
На философию потянуло...
авторГоспода, у меня образовалось немного времени

По ходу оно у тебя никогда и не прекращалось...:)
...
Рейтинг: 0 / 0
28.06.2006, 20:50
    #33820341
miner
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
На философию потянуло...
andrey_anonymous Господа, у меня образовалось немного времени и со страшной силой потянуло на философию :)
Видать отпуск по уходу взял на 3 года )))

по (1) можно скриптом на pl/sql вполне обойтись, хотя возможность не помешала бы.

Мне лично не хватает "временн'ых" данных, видимо это должен быть особый тип таблицы (текущих возможностей ретроспективных запросив явно недостаточно).
Пример, есть табличка с подразделениями организации (ID подразделения, NAME) и дочерняя таблица со штатом (ID подразделения, ID человека, Разряд, Дата приёма и т.д.)
Хотелось бы на каждую дату приёма вытащить наименование подразделения, каким оно было в тот момент.
Синтаксис мог бы быть таким:
Код: plaintext
1.
2.
select ...
from Штат Ш inner join Подразделения as of timestamp Ш.Дата_зачисления П on (Ш.ID_подразделения = П.ID_подразделения)
where ...

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

запрос к текущему состоянию:
Код: plaintext
Select * from Таблица

и запрос ко всем прецедентам состояний:
Код: plaintext
Select * from (Таблица as  of history) t

В последнем случае должен добавлятся ещё псевдостолбец момента возникновенимя состояния (хотя можно выводить его и в первом случае).


Вообще же мне интересным представляется открытый проект создания СУБД, причём не обязательно сразу на уровне реализации
, а последовательно, начиная с требований к инфраструктуре организации такой работы и переходя к требованиям к самой системе (архитектуре и элементам) и затем к их реализации.
Предвижу сразу массу возражений связанных с тем, что подобные проекты уже существуют
, но здесь могу сказать сразу, что в России мне такие не известны.
К томуже не забывайте, что мы просто философствуем (я лично с холодным Zipferom) :)
Если проект будет успешным даже на уровне спецификации, то он вполне может развиваться в рамках какого либо вуза (есть же пример FreeBSD).
Ещё один довод - слышал в новостях что правительство обеспокоено засильем вражеского ПО в стратегически важных отраслях народного хозяйства, так что потребность есть - нет предложения (на лицо револющионная ситуация).
...
Рейтинг: 0 / 0
28.06.2006, 20:58
    #33820349
Yuri Kazakoff
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
На философию потянуло...
Чтобы можно было сделать так:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
SQL> create table zhopa1(...);

SQL> insert into zhopa1 values ...;

SQL> savepoint sp1;

SQL> drop table zhopa1;

SQL> rollback to sp1;

SQL> select * from zhopa1;
   ID    NAME
_____   _____
     1        a

В MS SQL так можно. Со всеми вытекающими. Вначале кривился, а потом понравилось.

А ещё чтобы в Оракл встроили Си, как Джаву встроили.
...
Рейтинг: 0 / 0
28.06.2006, 21:19
    #33820371
Barkovsky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
На философию потянуло...
я давно говорю, что мне в оракле не хватает большой кнопки: "решить проблему".
...
Рейтинг: 0 / 0
29.06.2006, 01:15
    #33820556
OracleX
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
На философию потянуло...
Мне хотелось бы иметь элегантный способ для Insert (Update) одной записи в БД
через механизм вызова PL/SQL подпрограмм.

Я бы добавил в OCI новую структуру (Handle) OCI_UpdateRawDescriptor
(список колонок (измененных или фиксированный список, как хотите)),
в которую на клиенте можно занести BIND-переменные.

На стороне сервера в прикладном пакете mytable_pck будет что-то вида:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
PROCEDURE upd(p_UpdRaw IN SYSUpdateRaw, p_Id IN PLS_INTEGER, p_made_on IN DATE)
IS
  RAW UPDATE mytable 
  SET 
    made_on = SYSTIMESTAMP
  WHERE id = p_Id 
    AND made_on = p_made_on
  USING p_UpdRaw;

  IF SQL%ROWCOUNT =  0  THEN
    raise_application_error(- 20000 ,'Запись была изменена другим пользователем');
  ELSE   
    COMMIT;
  END IF;  
END;

Машина PL/SQL должна иметь описание типа SYSUpdateRaw, операторов RAW UPDATE, RAW INSERT
и уметь переделывать приведенный выше RAW UPDATE
в стандартный оператор UPDATE с Bind-переменными.

Желательно, чтобы при этом не использовался DBMS_SQL,
то есть реализовать сей механизм в ядре напрямую,
а не через кучу интерпретируемого кода.

Это позволило бы значительно упростить написание связок клиентский код - PL/SQL код,
уменьшить размер обоих, унифицировать прикладной код.

Актуально для задач, связанных с работой пользователя по добавлению/обновлению
одиночных записей в БД (бухгалтерия, склад, операционный день и т.п.)
...
Рейтинг: 0 / 0
29.06.2006, 11:03
    #33821102
biv2
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
На философию потянуло...
мне бы многово бы хотелось (несмотря на все достоинства оракл громозкий)
но что в первую очередь это простую конструкцию вида

m1:=select ... from (table,wiev,(select),m2); где (m* коллекция тире курсор)

было бы просто (и если бы оракл постарался и эфективно

1 типа запись выще не требует немедленого выполнения это обьявление

2 если я потом в программе делаю m3:=select * from m2 where ....
это обьевление вида (select * from (select ...))

3 вот когда я в програме делаю типа x:=m3[1].name; разбор курсора , open его, fetch , присвоение переменой
...
Рейтинг: 0 / 0
29.06.2006, 11:54
    #33821283
Sergey M
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
На философию потянуло...
Мне бы лично хотелось иметь встроенную конструкцию наподобие LIMIT в MySql. Знаю что без этого обойтись можно но тем не менее было бы приятно.
...
Рейтинг: 0 / 0
29.06.2006, 11:54
    #33821284
Tolmachov Dmitiry
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
На философию потянуло...
А мне бы хотелось, чтобы при работе с будущим релизом Oracle у меня уже была возможность вызвать секретаршу, попросить сделать мне кофе или чего-нибудь еще...
...
Рейтинг: 0 / 0
29.06.2006, 12:36
    #33821422
Stax.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
На философию потянуло...
Sergey MМне бы лично хотелось иметь встроенную конструкцию наподобие LIMIT в MySql. Знаю что без этого обойтись можно но тем не менее было бы приятно.
типа лимит они попытались что-то сделать см SAMPLE

чего бы хотелось
1) аналит ф-ции
a) аналог having
b) вложенные аналит ф-ции

2) еще один тип ТМП таблиц без генерации логов (пусть и без роллбека)

3) ордер бу в UPDATE (уже почти есть)
и чтоб MERGE на инсерт "правильно" работал

4) стандартные "табле" типы для базовых полей (аналог sys_refcursor)

5) стандартная групповая функия "колонку в строку"

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

7) добавить блокировку по чтению

8) включать/выключать обработку хинтов на уровне сессии (оператора)

9) убрать ограничение на ссылку на поля в "коррелированном" подзапросе

10) добавать констраит "непересекающейся диапазон"

а чуть не забыл,
убрать это переключение контекста с sql и pl/sql

PS
ну и с этими "рестартами" что-то надо делать

......
stax
...
Рейтинг: 0 / 0
29.06.2006, 14:29
    #33821803
Takurava
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
На философию потянуло...
Чтобы можно было написать
Код: plaintext
1.
2.
select DIR, count(*)
  from dir_size
  group by  1 
вместо
Код: plaintext
1.
2.
select DIR, count(*)
  from dir_size
  group by DIR
...
Рейтинг: 0 / 0
29.06.2006, 15:44
    #33822005
Grami
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
На философию потянуло...
Мне лично весьма не хватает
1. Партиционированных таблиц в индексном кластере (хочеца в кластере хранить Большие таблицы)
2. Возможности создать IOT таблицу при composite партиционировании

:)
...
Рейтинг: 0 / 0
29.06.2006, 19:57
    #33822732
SERG1257
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
На философию потянуло...
minerМне лично не хватает "временн'ых" данных, видимо это должен быть особый тип таблицы
А Workspace Management это случаем не то что вам надо?


Yuri Kazakoff
То бишь Recycle Bin уже не модно :-)

Присоединяюсь к Takurava или хотя бы
Код: plaintext
1.
2.
3.
select DIR d, count(*)
  from dir_size
  group by d

Хотя если честно фич хватает, хочется чтобы имеющиеся фичи работали. А то июнь заканчивается а патча на последнюю большую дырку все нет.
...
Рейтинг: 0 / 0
29.06.2006, 20:52
    #33822831
Stax.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
На философию потянуло...
как я мог забыть (позор на мою голову)
0.0
порядок срабатывания триггеров
.....
stax
...
Рейтинг: 0 / 0
29.06.2006, 21:17
    #33822867
афтор
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
На философию потянуло...
Хотелось бы уметь апдейтить вcю строку, не перечисляя столбцов

update ТАБЛ x
set VALUE(x) = l_row(i)
where ...
...
Рейтинг: 0 / 0
29.06.2006, 21:23
    #33822879
Elic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
На философию потянуло...
афторХотелось бы уметь апдейтить вcю строку, не перечисляя столбцов
set VALUE(x) = l_row(i)RTFM Updating the Database with PL/SQL Record Values (FAQ)
...
Рейтинг: 0 / 0
29.06.2006, 21:39
    #33822897
афтор
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
На философию потянуло...
Elic афторХотелось бы уметь апдейтить вcю строку, не перечисляя столбцов
set VALUE(x) = l_row(i)RTFM Updating the Database with PL/SQL Record Values (FAQ)

Премного благобдарю! Только почему в Оракловой документации я этого найти не могу:(
Смотрел как здесь
Oracle® Database SQL Reference 10g Release 2 (10.2)
Так и здесь
Oracle® Database PL/SQL User's Guide and Reference 10g Release 2 (10.2)
...
Рейтинг: 0 / 0
29.06.2006, 21:46
    #33822901
SY
SY
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
На философию потянуло...
афторТак и здесь
Oracle® Database PL/SQL User's Guide and Reference 10g Release 2 (10.2)

Так и здесь

SY.
...
Рейтинг: 0 / 0
29.06.2006, 21:49
    #33822904
dmidek
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
На философию потянуло...
2andrey_anonymous: Отличная тема.
Я реальный человек и не хватает мне вещей, которые , мне кажется скоро появятся. Многого не прошу :-)
1. Наведение порядка в ANSI- синтакисе джойнов.
2. INSERT - SELECT - RETURNING. Не понятно, почему не доделают.
3. Расширение скалярных подзапросов до нескольких колонок.
4. Дальнейшее совершенствование CASE - структур.
5. Дальнейшее совершенствование регулярных выражений.
...
Рейтинг: 0 / 0
30.06.2006, 01:37
    #33823055
miner
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
На философию потянуло...
SERG1257
А Workspace Management это случаем не то что вам надо?

Нет, не идёт ни в какое сравнение с тем, что там нафантазировал (слишком много ограничений).
Но движение в верном направлении есть, ещё через пару версий может и выйдет толк.

Да, забыл, неплохо бы смотрелись переменные связывания - массивы для использования с in.
...
Рейтинг: 0 / 0
30.06.2006, 09:59
    #33823301
Yuri Kazakoff
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
На философию потянуло...
а ещё бесит, что rman вываливает стотысячмиллионовмиллиардовсекстильонов сообщений:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
RMAN> whatthefuck

RMAN- 00571 : ===========================================================
RMAN- 00569 : =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN- 00571 : ===========================================================
RMAN- 00558 : error encountered while parsing input commands
RMAN- 01005 : syntax error: found "identifier": expecting one of: "allocate, alter, 
backup, beginline, blockrecover, catalog, change, connect, copy, create, 
crosscheck, configure, duplicate, debug, delete, drop, exit, endinline, host, {, 
library, list, mount, open, print, quit, recover, register, release, replace, report, 
renormalize, reset, restore, resync, rman, run, rpctest, set, setlimit, sql, spool, 
startup, shutdown, send, show, test, upgrade, validate"
RMAN- 01008 : the bad identifier was: whatthefuck
RMAN- 01007 : at line  1  column  1  file: standard input

RMAN>

И предыдущие команды по полчаса ищешь...
...
Рейтинг: 0 / 0
30.06.2006, 11:02
    #33823541
Grami
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
На философию потянуло...
minerДа, забыл, неплохо бы смотрелись переменные связывания - массивы для использования с in.

Присоединяюсь + отмена ограничения на 1000 элементов в in (...)
...
Рейтинг: 0 / 0
30.06.2006, 11:05
    #33823548
grexhide
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
На философию потянуло...
Grami minerДа, забыл, неплохо бы смотрелись переменные связывания - массивы для использования с in.

Присоединяюсь + отмена ограничения на 1000 элементов в in (...)

Надмозги за работой ?
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / На философию потянуло... / 25 сообщений из 139, страница 1 из 6
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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