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

Откуда: Москва
Сообщений: 15757
Господа, у меня образовалось немного времени и со страшной силой потянуло на философию :)
И размышляю я на тему "а какого лешегшо мне не хватает в СУБД Oracle"?
Кто не против отвлеченной философии - присоединяйтесь :)

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

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

insert into table x 
select ... from 
    table( delete table y where ... ) 
where... [group by...];

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

2) сегмента с организацией queue. В AQ oracle выкручивается на обычных индексированных таблицах, но накладные расходы этой эмуляции довольно значительны...
28 июн 06, 15:49    [2821877]     Ответить | Цитировать Сообщить модератору
 Re: На философию потянуло...  [new]
MacDuck
Member

Откуда: Москва-Подольск
Сообщений: 6381
andrey_anonymous
Господа, у меня образовалось немного времени и со страшной силой потянуло на философию :)


Иди рождение сына обмывай и жену поздравляй! На философию его потянуло....
ТЫ обязан уже мертвецки пьяным быть!
28 июн 06, 15:55    [2821913]     Ответить | Цитировать Сообщить модератору
 Re: На философию потянуло...  [new]
Apex
Member

Откуда: Made in USSR
Сообщений: 3876
andrey_anonymous

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

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

Лично мне еще не хватает возможности создания бОльшего числа buffer pool'ов, подсмотрено опять же у DB2.
28 июн 06, 16:10    [2821997]     Ответить | Цитировать Сообщить модератору
 Re: На философию потянуло...  [new]
!
Guest
автор
Господа, у меня образовалось немного времени


По ходу оно у тебя никогда и не прекращалось...:)
28 июн 06, 16:17    [2822052]     Ответить | Цитировать Сообщить модератору
 Re: На философию потянуло...  [new]
miner
Member

Откуда: Moscow
Сообщений: 212
andrey_anonymous
Господа, у меня образовалось немного времени и со страшной силой потянуло на философию :)

Видать отпуск по уходу взял на 3 года )))

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

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

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

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

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

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


Вообще же мне интересным представляется открытый проект создания СУБД, причём не обязательно сразу на уровне реализации
, а последовательно, начиная с требований к инфраструктуре организации такой работы и переходя к требованиям к самой системе (архитектуре и элементам) и затем к их реализации.
Предвижу сразу массу возражений связанных с тем, что подобные проекты уже существуют
, но здесь могу сказать сразу, что в России мне такие не известны.
К томуже не забывайте, что мы просто философствуем (я лично с холодным Zipferom) :)
Если проект будет успешным даже на уровне спецификации, то он вполне может развиваться в рамках какого либо вуза (есть же пример FreeBSD).
Ещё один довод - слышал в новостях что правительство обеспокоено засильем вражеского ПО в стратегически важных отраслях народного хозяйства, так что потребность есть - нет предложения (на лицо револющионная ситуация).
28 июн 06, 20:50    [2823110]     Ответить | Цитировать Сообщить модератору
 Re: На философию потянуло...  [new]
Yuri Kazakoff
Member

Откуда: Североморск
Сообщений: 167
Чтобы можно было сделать так:

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 так можно. Со всеми вытекающими. Вначале кривился, а потом понравилось.

А ещё чтобы в Оракл встроили Си, как Джаву встроили.
28 июн 06, 20:58    [2823125]     Ответить | Цитировать Сообщить модератору
 Re: На философию потянуло...  [new]
Barkovsky
Member

Откуда: Санкт-Петербург
Сообщений: 2655
я давно говорю, что мне в оракле не хватает большой кнопки: "решить проблему".
28 июн 06, 21:19    [2823176]     Ответить | Цитировать Сообщить модератору
 Re: На философию потянуло...  [new]
OracleX
Member

Откуда:
Сообщений: 2008
Мне хотелось бы иметь элегантный способ для Insert (Update) одной записи в БД
через механизм вызова PL/SQL подпрограмм.

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

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

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 код,
уменьшить размер обоих, унифицировать прикладной код.

Актуально для задач, связанных с работой пользователя по добавлению/обновлению
одиночных записей в БД (бухгалтерия, склад, операционный день и т.п.)
29 июн 06, 01:15    [2823551]     Ответить | Цитировать Сообщить модератору
 Re: На философию потянуло...  [new]
biv2
Guest
мне бы многово бы хотелось (несмотря на все достоинства оракл громозкий)
но что в первую очередь это простую конструкцию вида

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 , присвоение переменой
29 июн 06, 11:03    [2824438]     Ответить | Цитировать Сообщить модератору
 Re: На философию потянуло...  [new]
Sergey M
Member

Откуда: г. Барнаул
Сообщений: 2425
Мне бы лично хотелось иметь встроенную конструкцию наподобие LIMIT в MySql. Знаю что без этого обойтись можно но тем не менее было бы приятно.
29 июн 06, 11:54    [2824780]     Ответить | Цитировать Сообщить модератору
 Re: На философию потянуло...  [new]
Tolmachov Dmitiry
Member

Откуда: Москва, Пенза
Сообщений: 1520
А мне бы хотелось, чтобы при работе с будущим релизом Oracle у меня уже была возможность вызвать секретаршу, попросить сделать мне кофе или чего-нибудь еще...
29 июн 06, 11:54    [2824781]     Ответить | Цитировать Сообщить модератору
 Re: На философию потянуло...  [new]
Stax.
Guest
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
29 июн 06, 12:36    [2825086]     Ответить | Цитировать Сообщить модератору
 Re: На философию потянуло...  [new]
Takurava
Member

Откуда:
Сообщений: 1712
Чтобы можно было написать
select DIR, count(*)
  from dir_size
  group by 1
вместо
select DIR, count(*)
  from dir_size
  group by DIR
29 июн 06, 14:29    [2825941]     Ответить | Цитировать Сообщить модератору
 Re: На философию потянуло...  [new]
Grami
Member

Откуда: Москва
Сообщений: 451
Мне лично весьма не хватает
1. Партиционированных таблиц в индексном кластере (хочеца в кластере хранить Большие таблицы)
2. Возможности создать IOT таблицу при composite партиционировании

:)
29 июн 06, 15:44    [2826479]     Ответить | Цитировать Сообщить модератору
 Re: На философию потянуло...  [new]
SERG1257
Member

Откуда:
Сообщений: 2472
miner
Мне лично не хватает "временн'ых" данных, видимо это должен быть особый тип таблицы

А Workspace Management это случаем не то что вам надо?


Yuri Kazakoff

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

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

Хотя если честно фич хватает, хочется чтобы имеющиеся фичи работали. А то июнь заканчивается а патча на последнюю большую дырку все нет.
29 июн 06, 19:57    [2827940]     Ответить | Цитировать Сообщить модератору
 Re: На философию потянуло...  [new]
Stax.
Guest
как я мог забыть (позор на мою голову)
0.0
порядок срабатывания триггеров
.....
stax
29 июн 06, 20:52    [2828100]     Ответить | Цитировать Сообщить модератору
 Re: На философию потянуло...  [new]
афтор
Guest
Хотелось бы уметь апдейтить вcю строку, не перечисляя столбцов

update ТАБЛ x
set VALUE(x) = l_row(i)
where ...
29 июн 06, 21:17    [2828170]     Ответить | Цитировать Сообщить модератору
 Re: На философию потянуло...  [new]
Elic
Member

Откуда: 1984. Выбраковка финно-угром началась. КЯЗ
Сообщений: 26616
афтор
Хотелось бы уметь апдейтить вcю строку, не перечисляя столбцов
set VALUE(x) = l_row(i)
RTFM Updating the Database with PL/SQL Record Values (FAQ)
29 июн 06, 21:23    [2828187]     Ответить | Цитировать Сообщить модератору
 Re: На философию потянуло...  [new]
афтор
Guest
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)
29 июн 06, 21:39    [2828229]     Ответить | Цитировать Сообщить модератору
 Re: На философию потянуло...  [new]
SY
Member

Откуда: Middlebury, CT USA
Сообщений: 8431
афтор
Так и здесь
Oracle® Database PL/SQL User's Guide and Reference 10g Release 2 (10.2)


Так и здесь

SY.
29 июн 06, 21:46    [2828237]     Ответить | Цитировать Сообщить модератору
 Re: На философию потянуло...  [new]
dmidek
Member

Откуда: Киев - Дортмунд
Сообщений: 86107
2andrey_anonymous: Отличная тема.
Я реальный человек и не хватает мне вещей, которые , мне кажется скоро появятся. Многого не прошу :-)
1. Наведение порядка в ANSI- синтакисе джойнов.
2. INSERT - SELECT - RETURNING. Не понятно, почему не доделают.
3. Расширение скалярных подзапросов до нескольких колонок.
4. Дальнейшее совершенствование CASE - структур.
5. Дальнейшее совершенствование регулярных выражений.
29 июн 06, 21:49    [2828241]     Ответить | Цитировать Сообщить модератору
 Re: На философию потянуло...  [new]
miner
Member

Откуда: Moscow
Сообщений: 212
SERG1257

А Workspace Management это случаем не то что вам надо?

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

Да, забыл, неплохо бы смотрелись переменные связывания - массивы для использования с in.
30 июн 06, 01:37    [2828535]     Ответить | Цитировать Сообщить модератору
 Re: На философию потянуло...  [new]
Yuri Kazakoff
Member

Откуда: Североморск
Сообщений: 167
а ещё бесит, что rman вываливает стотысячмиллионовмиллиардовсекстильонов сообщений:

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>

И предыдущие команды по полчаса ищешь...
30 июн 06, 09:59    [2828957]     Ответить | Цитировать Сообщить модератору
 Re: На философию потянуло...  [new]
Grami
Member

Откуда: Москва
Сообщений: 451
miner
Да, забыл, неплохо бы смотрелись переменные связывания - массивы для использования с in.


Присоединяюсь + отмена ограничения на 1000 элементов в in (...)
30 июн 06, 11:02    [2829394]     Ответить | Цитировать Сообщить модератору
 Re: На философию потянуло...  [new]
grexhide
Member [заблокирован]

Откуда: Страна непреодолимых противоречий
Сообщений: 8561
Grami
miner
Да, забыл, неплохо бы смотрелись переменные связывания - массивы для использования с in.


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


Надмозги за работой ?
30 июн 06, 11:05    [2829407]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2 3 4 5 6   вперед  Ctrl      все
Все форумы / Oracle Ответить