Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Сравнение СУБД Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2 3 4   вперед  Ctrl      все
 Работа с коллекциями в T-SQL  [new]
Simple
Guest
Помогите.
Были написаны коды на PL/SQL. Их необходимо перевести на T-SQL (меняется БД). Есть ли аналог таблиц обьектов (table of object) (работы с коллекциями, в частности использование их в запросах) в T-SQL. Или придется переносить логику на клиента (С#)
16 фев 04, 15:01    [537499]     Ответить | Цитировать Сообщить модератору
 Re: Работа с коллекциями в T-SQL  [new]
tygra
Member

Откуда: Тверь (Иркутск, Край)
Сообщений: 9997
Не имеется.

А что вы подразумеваете под работы с коллекциями? Зачем уж они так нужны? Может избавиться от них - все-равно придется бОльшую часть переписать

-- Tygra's --
16 фев 04, 15:24    [537549]     Ответить | Цитировать Сообщить модератору
 Re: Работа с коллекциями в T-SQL  [new]
Simple
Guest
Переписать понятное дело. А вы работали с коллекциями ? Просто те возможности которые они дают можно решить только курсорами и то не всегда.
16 фев 04, 15:36    [537575]     Ответить | Цитировать Сообщить модератору
 Re: Работа с коллекциями в T-SQL  [new]
tygra
Member

Откуда: Тверь (Иркутск, Край)
Сообщений: 9997
Нет, не работал.
Поэтому и спрашиваю - что это есть за работа, чтобы предложить как это сделать на MS SQL (или не делать :)

-- Tygra's --
16 фев 04, 16:45    [537749]     Ответить | Цитировать Сообщить модератору
 Re: Работа с коллекциями в T-SQL  [new]
www.fun4me.narod.ru
Member

Откуда: Moscow
Сообщений: 2406
Ну и чего такого они дают?
16 фев 04, 22:19    [538235]     Ответить | Цитировать Сообщить модератору
 Re: Работа с коллекциями в T-SQL  [new]
Gluk (Kazan)
Member

Откуда:
Сообщений: 9365
Грубо говоря, это ассоциативные массивы (в 8-ке по integer, в 9-ке можно по varchar2) в памяти сеанса. Весьма удобны в работе и довольно широко используются в Oracle
17 фев 04, 07:33    [538386]     Ответить | Цитировать Сообщить модератору
 Re: Работа с коллекциями в T-SQL  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 32174
2Gluk (Kazan)
А чем они отличаются от временных таблиц в MSSQL?
Ассоциативный массив - это массив с обращениями не по индексу, а по значению ключа (как я понял из вашего описания). Вот в MSSQL это есть. И тоже очень широко используются.
17 фев 04, 13:01    [539068]     Ответить | Цитировать Сообщить модератору
 Re: Работа с коллекциями в T-SQL  [new]
funikovyuri
Member

Откуда: Симферополь
Сообщений: 4045
в общем - вам придется переписать код на использование временных таблиц...

Понятно что менее удобно - но такой уж TSQL - язык спартанцев и прочих...
17 фев 04, 13:13    [539115]     Ответить | Цитировать Сообщить модератору
 Re: Работа с коллекциями в T-SQL  [new]
www.fun4me.narod.ru
Member

Откуда: Moscow
Сообщений: 2406
2 furnikov
А вы видели, sql trace при обработке коллекций или вложенных таблиц на клиенте через функции OCI? ORACLE по каждому чиху загружает кучу ненужной информации о типе объекта из своих системных таблиц. Причем делает это не одним запросом, а целой серией маленьких ненужных запросиков. Что существенно увеличивает нагрузку на сеть и тормозит работу приложения.
Если оно так же и на PL/SQL реализовано.... Тогда это должно тормозить уже на таблице с полумиллионом строк... /imho/
17 фев 04, 13:26    [539149]     Ответить | Цитировать Сообщить модератору
 Re: Работа с коллекциями в T-SQL  [new]
www.fun4me.narod.ru
Member

Откуда: Moscow
Сообщений: 2406
Кстати, временные таблицы гораздо удобнее - вы можете их использовать в запросах без открытия курсора. Естественно, всё быстрее работает. Так как оптимизатор может, например, распараллелить запрос, если сочтет нужным. А с коллекциями такого не сделать не удастся.
В общем, забудьте о коллекциях - используйте временные таблицы. Поймете, что много потеряли, программируя на ORACLE.
17 фев 04, 13:31    [539172]     Ответить | Цитировать Сообщить модератору
 Re: Работа с коллекциями в T-SQL  [new]
funikovyuri
Member

Откуда: Симферополь
Сообщений: 4045
ну ну - коллекции на клиенте... ну тогда да для вас ORACLE - это вообще не СУБД (тем более в сравнении с MS SQL)
17 фев 04, 13:54    [539260]     Ответить | Цитировать Сообщить модератору
 Re: Работа с коллекциями в T-SQL  [new]
SergSuper
Member

Откуда: SPb
Сообщений: 5488
2 funikovyuri
А можно какой-нибудь примерчик по применению коллекций? Хоть понять что это такое
17 фев 04, 14:40    [539406]     Ответить | Цитировать Сообщить модератору
 Re: Работа с коллекциями в T-SQL  [new]
tygra
Member

Откуда: Тверь (Иркутск, Край)
Сообщений: 9997
Да, да, примерчик нам.
И как именно у вас применяются

-- Tygra's --
17 фев 04, 14:58    [539469]     Ответить | Цитировать Сообщить модератору
 Re: Работа с коллекциями в T-SQL  [new]
Gt.
Guest
поскольку оракловые источники посмотреть похоже вам религия не позволяет, предлагаю смотреть сюда:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/architec/8_ar_ad_0hyx.asp
17 фев 04, 21:24    [540240]     Ответить | Цитировать Сообщить модератору
 Re: Работа с коллекциями в T-SQL  [new]
SergSuper
Member

Откуда: SPb
Сообщений: 5488
2 Gt.
Без ёрничества конечно никак...
Ну не знаю я ничего об Оракле - не было нужно - и где я эти источники буду искать? Неужели трудно пример какой? Я б чего-нибудь написал, если б мог.

Приведённая Вами ссылка описывает English Query - скорее всего Вы ошиблись или тогда чё-то надо еще пояснить.
18 фев 04, 10:43    [540662]     Ответить | Цитировать Сообщить модератору
 Re: Работа с коллекциями в T-SQL  [new]
tygra
Member

Откуда: Тверь (Иркутск, Край)
Сообщений: 9997
А при чем тут оракловые источники? Хочется узнать, как это использует Simple - может оно ему не надо

-- Tygra's --
18 фев 04, 11:03    [540708]     Ответить | Цитировать Сообщить модератору
 Re: Работа с коллекциями в T-SQL  [new]
Gt.
Guest
мда линк на msdn explorerом и не заполучить ...

http://msdn.microsoft.com/msdnmag/issues/04/02/UDTsinYukon/default.aspx
там рядом пара статей зачем в субд (Юконе) ООП

Без ёрничества конечно никак...

если бы вы хотели что-то узнать то уже посмотрели бы Oracle® Database Application Developer's Guide - Object-Relational Features ...
http://download-west.oracle.com/docs/cd/B12037_01/appdev.101/b10799/toc.htm
18 фев 04, 12:55    [541034]     Ответить | Цитировать Сообщить модератору
 Re: Работа с коллекциями в T-SQL  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 32174
2Gt.
Вторая ссылка требует пароля... Вот у вас всё так... Это по MSSQL легко найти информацию.
18 фев 04, 13:04    [541067]     Ответить | Цитировать Сообщить модератору
 Re: Работа с коллекциями в T-SQL  [new]
Gt.
Guest
зарегистрируйся - это бесплатно, лень? чуть шевилим мозгами и ...
http://www.google.com/search?hl=en&ie=UTF-8&oe=UTF-8&q=Oracle%C2%AE+Database+Application+Developer%27s+Guide+-+Object-Relational+Features+
18 фев 04, 13:08    [541080]     Ответить | Цитировать Сообщить модератору
 Re: Работа с коллекциями в T-SQL  [new]
www.fun4me.narod.ru
Member

Откуда: Moscow
Сообщений: 2406
Ну и правильно. В принципе, каждый столбец в отношении должен быть атомарным. А UDT с перегрузкой операций позволяют хранить в базе только отношения между атомарными столбцами, скрывая детали реализации структуры столбцов в UDT. Это может быть полезным, так как всё равно в наше время в высшые нормальные формы из-за лени мало кто базу переведёт.
Но коллекции являются вариантом реализации именно отношений. Спрашивается, нафига тогда таблицы?

На самом деле, я видел реализации постраничной подгрузки с помощью коллекций. Работало всё неимоверно медленно. Запрос с двумя подзапросами с использованием ROWNUM работал на порядок быстрее. (Особенно для первых страниц :)) .Если в случае Simple коллекции используются для альтернативы таблицам (а их приходится так использовать из-за неэффективной реализации временных таблиц в ORACLE), то замена их на таблицы при переходе на MSSQL будет вполне естественной и лишь увеличит производительность системы.

/imho/
18 фев 04, 13:18    [541121]     Ответить | Цитировать Сообщить модератору
 Re: Работа с коллекциями в T-SQL  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 32174
2Gt.
автор
зарегистрируйся - это бесплатно, лень?

Ну, что-бы узнать, что такое коллекции, заводить новый почтовый ящик, вводить сто полей в формах регистрации....

За гуглёвую ссылку спасибо - про поиск я как-то и не подумал :-)
18 фев 04, 13:37    [541208]     Ответить | Цитировать Сообщить модератору
 Re: Работа с коллекциями в T-SQL  [new]
Denis Popov
Member

Откуда: Санкт-Петербург
Сообщений: 7862
Под коллекциями Oracle обычно подразумеваются PL/SQL-таблицы, начиная с Oracle8i дополнительно появились объектные таблицы. Первые представляют собой не более чем индексированные массивы, с ними нельзя работать через операторы SQL: SELECT, INSERT, UPDATE, etc, но в запросах можно использовать элементы массива, указывая его индекс. Объектные же таблицы могут использоваться точно так же, но возможностей у них гораздо больше: использование в запросах, создание обыкновенных таблиц на их основе, доступ к методам объектов таблицы и т.д.

Главное отличие оракловых коллекций от временных таблиц ИМХО состоит в возможности передачи их в качестве аргумента процедуры (здесь я могу ошибаться, может это не так, т.е. в MSSQL можно "обмениваться" временными таблицами?) и хранении их экземпляров в контексте сессии. В MSSQL, насколько я знаю, отсутствует понятие пакета, или PACKAGE, где можно сохранять пользовательские переменные, к примеру, экземпляра массива. И если участки кода Oracle. использующие коллекции только "для внутреннего употребления", можно будет достаточно безболезненно переписать на использование временных таблиц, то код, использующий "разделяемые" коллекции, ИМХО придется переосмысливать полностью.
18 фев 04, 13:57    [541273]     Ответить | Цитировать Сообщить модератору
 Re: Работа с коллекциями в T-SQL  [new]
SergSuper
Member

Откуда: SPb
Сообщений: 5488
А вобще личных впечатлений и личного опыта хотелось. Ссылками то кидаться проще простого.
Но видать не судьба.
18 фев 04, 14:04    [541303]     Ответить | Цитировать Сообщить модератору
 Re: Работа с коллекциями в T-SQL  [new]
www.fun4me.narod.ru
Member

Откуда: Moscow
Сообщений: 2406
Ораклисты - они все такие. В большинстве своём. Жизнь по книжкам учат, а не по опыту. Ссылка для них важнее, чем пример.
18 фев 04, 14:25    [541362]     Ответить | Цитировать Сообщить модератору
 Re: Работа с коллекциями в T-SQL  [new]
funikovyuri
Member

Откуда: Симферополь
Сообщений: 4045
www.fun4me.narod.ru

А у сторонником MS SQL тогда есть черта - все чего нет в их любимой СУБД причислять к ненужному...

P.S> мы же вроде про атомарность договорились (т.е. где imho)
18 фев 04, 16:03    [541680]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2 3 4   вперед  Ctrl      все
Все форумы / Сравнение СУБД Ответить