Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как передать массив из одной проц. в другую (sql2k) - наиболее производительный / 11 сообщений из 11, страница 1 из 1
09.04.2002, 08:17
    #32027296
__a2
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как передать массив из одной проц. в другую (sql2k) - наиболее производительный
Как передать массив из одной проц. в другую (sql2k) - интересует наиболее производительный варант.
Использование статическимх таблиц для времменого хранения не предлагать.
...
Рейтинг: 0 / 0
09.04.2002, 14:48
    #32027346
alexeyvg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как передать массив из одной проц. в другую (sql2k) - наиболее производительный
Локальные временные таблицы.
...
Рейтинг: 0 / 0
09.04.2002, 15:51
    #32027350
Andrew
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как передать массив из одной проц. в другую (sql2k) - наиболее производительный
insert into table exec stor_proc
или
insert into #table exec stor_proc

Если stor_proc результирующий набор возращает, то он попадет в table.
...
Рейтинг: 0 / 0
10.04.2002, 03:32
    #32027367
__a2
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как передать массив из одной проц. в другую (sql2k) - наиболее производительный
2 alexeyvg - это не быстрый вариант при интенсивной работе

2 Andrew - как возвращять понятно , но вопрос как ПЕРЕДАТЬ массив в проц.
...
Рейтинг: 0 / 0
10.04.2002, 05:52
    #32027380
alexeyvg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как передать массив из одной проц. в другую (sql2k) - наиболее производительный
2__a2:
"Не быстрый" по сравнению с каким способом передачи массива?
...
Рейтинг: 0 / 0
11.04.2002, 09:57
    #32027577
__a2
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как передать массив из одной проц. в другую (sql2k) - наиболее производительный
2 alexeyvg - Хотелось бы использовать переменные типа table , но их нельзя передавать как параметр. Хочу проверить вариант передачи данных через параметр типа text , потом из него запихать в переменную типа table , и вернуть обратно уже из нее. Мне кажеться это должно быть быстрее чем использование постоянных или временных таблиц.
...
Рейтинг: 0 / 0
11.04.2002, 14:39
    #32027616
alexeyvg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как передать массив из одной проц. в другую (sql2k) - наиболее производительный
Использование постоянных таблиц будет медленнее по многим причинам - их нужно будет очищать; статистика не обновляется и т.д.

Использование временных таблиц будет быстрее передачи данных через параметр типа text и последующего разбора, во много-много раз!
Вы просто не будете делать лишних операций.

create proc proc1
as
create table #t(....)
{создание индексов для #t}
{заполнение #t}
exec proc2
exec proc3
...
go

create proc proc2
as
{использование #t}
go

create proc proc3
as
{использование #t}
go

При этом даже будут использоваться индексы...
...
Рейтинг: 0 / 0
12.04.2002, 04:12
    #32027634
__a2
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как передать массив из одной проц. в другую (sql2k) - наиболее производительный
2 alexeyvg
Спорный момент . все операции с временными таблицами будут сохраняться в tempdb ,а это использование диска.
Да , индексы это полезно при большом кол-ве записей.
Передача параметров идет через память , разбор строки с данными тоже в памяти, переменная table похоже тоже только в памяти.
Плюс нет привязки к имени временных таблиц , контроль что таблица создана , больше гибкость и удобство разработки сложных , больших проэктов.

Как пишет BOL:
Consider using table variables instead of temporary tables. Temporary tables are useful in cases when indexes need to be created explicitly on them, or when the table values need to be visible across multiple stored procedures or functions. In general, table variables contribute to more efficient query processing.

По кол-ву операций это будет больше , но скорость определяеться не объемом кода.

До конца эти предположения еще не проверены.
...
Рейтинг: 0 / 0
12.04.2002, 06:12
    #32027652
alexeyvg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как передать массив из одной проц. в другую (sql2k) - наиболее производительный
Кстати, передача из процедуры в процедуру через переменную типа текст невозможна: такую переменную не создать.
Остаётся довольствоваться варчаром, а им много не передать.
...
Рейтинг: 0 / 0
14.04.2002, 23:35
    #32027812
Speshuric
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как передать массив из одной проц. в другую (sql2k) - наиболее производительный
Мне в реалях жизни пришлось пользовать динамический sql и локальные таблицы. лучшего не получилось...
...
Рейтинг: 0 / 0
14.04.2002, 23:38
    #32027813
Speshuric
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как передать массив из одной проц. в другую (sql2k) - наиболее производительный
О! извините... локальные временные таблицы типа #t этим же запросом заполняемые и создаваемые.
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как передать массив из одной проц. в другую (sql2k) - наиболее производительный / 11 сообщений из 11, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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