Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
ASE - временные таблицы
|
|||
|---|---|---|---|
|
#18+
В ASA есть хорошая вещь Global Temporary Table А можно ли аналог сделать в ASE (12.5.3)? То есть временная таблица, которая существует всегда, переживает перезагрузку и при этом между сессиями разделяет данные? Надобно это для того, чтобы из разных процедур в одной сессии к ней обращаться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.07.2005, 17:32 |
|
||
|
ASE - временные таблицы
|
|||
|---|---|---|---|
|
#18+
оу кажется мысль пришла как это сделать из обычной временной таблицы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.07.2005, 17:48 |
|
||
|
ASE - временные таблицы
|
|||
|---|---|---|---|
|
#18+
Так зачем мысли-то тебе ? сделай ПРОСТО ТАБЛИЦУ, нормальную обычную невременную таблицу и все. НЕ в tempdb, если хочешь , чтобы она переживала перезагрузку, в tempdb , если хочешь, чтобы НЕ переживала перезагрузку. А аналога Global Temporary Table в ASE нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.07.2005, 23:15 |
|
||
|
ASE - временные таблицы
|
|||
|---|---|---|---|
|
#18+
MasterZiv: единственное - меня в простой таблице не устраивает одна штука. Нет разделения данных между сессиями. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2005, 00:38 |
|
||
|
ASE - временные таблицы
|
|||
|---|---|---|---|
|
#18+
Добавь в таблицу колонку, в которую помещай @@SPID - идентификатор сессии (только не забывай чистить после себя - чтоб не захламлять, и перед записью данных - чтоб глаза на лоб не выскакивали) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2005, 05:43 |
|
||
|
ASE - временные таблицы
|
|||
|---|---|---|---|
|
#18+
да, я про такое тоже подумал. Правда тогда там записей много станет. Но вариант хороший. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2005, 09:17 |
|
||
|
ASE - временные таблицы
|
|||
|---|---|---|---|
|
#18+
добавь таблицу в базу model - она будет создаваться в tempdb каждый раз при старте сервера ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2005, 10:05 |
|
||
|
ASE - временные таблицы
|
|||
|---|---|---|---|
|
#18+
golsaДобавь в таблицу колонку, в которую помещай @@SPID - идентификатор сессии ( только не забывай чистить после себя - чтоб не захламлять, и перед записью данных - чтоб глаза на лоб не выскакивали) А вот если у меня коннект порвался - можно ли делать очистку автоматически со стороны сервера? Я не смог придумать, как. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.07.2005, 11:27 |
|
||
|
ASE - временные таблицы
|
|||
|---|---|---|---|
|
#18+
.ES golsaДобавь в таблицу колонку, в которую помещай @@SPID - идентификатор сессии ( только не забывай чистить после себя - чтоб не захламлять, и перед записью данных - чтоб глаза на лоб не выскакивали) А вот если у меня коннект порвался - можно ли делать очистку автоматически со стороны сервера? Я не смог придумать, как. в ASE есть create event ? можно поставить стирать записи раз в сутки, где разница между текущей датой и датой создания больше какого-то значения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.07.2005, 12:31 |
|
||
|
ASE - временные таблицы
|
|||
|---|---|---|---|
|
#18+
Рыжий Кот wrote: > в ASE есть create event ? > можно поставить стирать записи раз в сутки, где разница между текущей > датой и датой создания больше какого-то значения. А если CREATE EVENT нет - на это дело можно навострить системный шедулер :). Posted via ActualForum NNTP Server 1.2 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.07.2005, 12:45 |
|
||
|
ASE - временные таблицы
|
|||
|---|---|---|---|
|
#18+
Dim2000 Рыжий Кот wrote: > в ASE есть create event ? > можно поставить стирать записи раз в сутки, где разница между текущей > датой и датой создания больше какого-то значения. А если CREATE EVENT нет - на это дело можно навострить системный шедулер :). Posted via ActualForum NNTP Server 1.2 люблю все в одном :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.07.2005, 13:04 |
|
||
|
ASE - временные таблицы
|
|||
|---|---|---|---|
|
#18+
авторА вот если у меня коннект порвался - можно ли делать очистку автоматически со стороны сервера? Я не смог придумать, как. Я бы предложил просто перед заполнением проверять, есть ли записи с моим @@spid и удалять их, ведь @@spid уникальный как-никак. По поводу топика - обошелся вполне обычными временными таблицами, просто что-то заклинило забыл, что можне ее в пакете до процедуры создать :0) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.07.2005, 14:59 |
|
||
|
ASE - временные таблицы
|
|||
|---|---|---|---|
|
#18+
Я удаляю сразу без проверки. И чищу перед и после. Перед - это как раз на случай некорректного завершения предыдущего сеанса с таким же @@spid. Ну а мусор убираю в ночь на воскресенье командой truncate table [[database.]owner.]table_name в скрипте по расписанию. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.07.2005, 07:02 |
|
||
|
ASE - временные таблицы
|
|||
|---|---|---|---|
|
#18+
>> Я бы предложил просто перед заполнением проверять, есть ли записи с моим @@spid и удалять их, ведь @@spid уникальный как-никак. - В том-то и дело, что после реконнекта @@spid будет уже другим, и даже если предыдущее значение запоминать на клиенте, нет гарантии, что его не заберёт какой-нибудь другой клиент. Но вот если разделение данных обеспечить только между различными IP-адресами (вместо @@spid), тогда прокатит. >> ...мусор убираю в ночь на воскресенье... - Хорошо тебе... А вот у нас производство непрерывное:) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.07.2005, 11:13 |
|
||
|
ASE - временные таблицы
|
|||
|---|---|---|---|
|
#18+
автор>> Я бы предложил просто перед заполнением проверять, есть ли записи с моим @@spid и удалять их, ведь @@spid уникальный как-никак. - В том-то и дело, что после реконнекта @@spid будет уже другим, и даже если предыдущее значение запоминать на клиенте, нет гарантии, что его не заберёт какой-нибудь другой клиент. Но вот если разделение данных обеспечить только между различными IP-адресами (вместо @@spid), тогда прокатит. ну и что? Одновременно может существовать только один @@spid, поэтому если мы, войдя, видим эти записи- они явно не актуальные, ведь мы смогли получить их spid. Между сессиями сохранять данные не нужно, они же временные. И golsa без проверки их удаляет это правильно, даже проверять не надо. А вот ip адрес, uid и прочие - не уникальны, на них опираться нельзя. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.07.2005, 11:32 |
|
||
|
ASE - временные таблицы
|
|||
|---|---|---|---|
|
#18+
.ES А вот если у меня коннект порвался - можно ли делать очистку автоматически со стороны сервера? Я не смог придумать, как. У тебя будет в коде фаза инициализации, где ты будешь стирать все записи данной сессии. Там же стирай и все записи несуществующих сессий. И все. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.07.2005, 13:47 |
|
||
|
ASE - временные таблицы
|
|||
|---|---|---|---|
|
#18+
.ES>> Я бы предложил просто перед заполнением проверять, есть ли записи с моим @@spid и удалять их, ведь @@spid уникальный как-никак. - В том-то и дело, что после реконнекта @@spid будет уже другим, и даже если предыдущее значение запоминать на клиенте, нет гарантии, что его не заберёт какой-нибудь другой клиент. Но вот если разделение данных обеспечить только между различными IP-адресами (вместо @@spid), тогда прокатит. >> ...мусор убираю в ночь на воскресенье... - Хорошо тебе... А вот у нас производство непрерывное:) Наверно единственный правельный выход - это создавать временные таблицы сразу после коннекта. Не в ХП. Чтобы они всегда висели и были доступны сессии из любой процедуры. Truncate всегда им можно сделать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.07.2005, 16:19 |
|
||
|
ASE - временные таблицы
|
|||
|---|---|---|---|
|
#18+
gardenman Наверно единственный правельный выход - это создавать временные таблицы сразу после коннекта. Не в ХП. Чтобы они всегда висели и были доступны сессии из любой процедуры. Truncate всегда им можно сделать. Нафиг-нафиг. Временные #таблицы в ASE, создющиеся вне процедуры - это постоянный геморрой. Есть к сожалению опыт... Постоянные со spid лучше. Или как вариант - с suid, если под одним логином только один чел в одном приложении работает - в этом случае можно условие suid=suser_id() во вьюшку воткнуть, а со @@spid такое не выйдет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2005, 04:56 |
|
||
|
ASE - временные таблицы
|
|||
|---|---|---|---|
|
#18+
MasterZiv .ES А вот если у меня коннект порвался - можно ли делать очистку автоматически со стороны сервера? Я не смог придумать, как. У тебя будет в коде фаза инициализации, где ты будешь стирать все записи данной сессии. Там же стирай и все записи несуществующих сессий. И все. Вот оно - неочевидное, но правильное решение! И никаких шедулеров. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2005, 09:31 |
|
||
|
ASE - временные таблицы
|
|||
|---|---|---|---|
|
#18+
авторНафиг-нафиг. Временные #таблицы в ASE, создющиеся вне процедуры - это постоянный геморрой. Есть к сожалению опыт... а почему, позвольте поинтересоваться? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2005, 11:03 |
|
||
|
ASE - временные таблицы
|
|||
|---|---|---|---|
|
#18+
Процедуру без таблицы не залить. Алгоритм заливки такой: создается временная таблица , создается процедура, удаляется таблица. Сложновато, ненужные завязки - абсолютно согласен. Уж лучше псевдовременная в tempdb. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2005, 11:14 |
|
||
|
ASE - временные таблицы
|
|||
|---|---|---|---|
|
#18+
sn1251 gardenman Наверно единственный правельный выход - это создавать временные таблицы сразу после коннекта. Не в ХП. Чтобы они всегда висели и были доступны сессии из любой процедуры. Truncate всегда им можно сделать. Нафиг-нафиг. Временные #таблицы в ASE, создющиеся вне процедуры - это постоянный геморрой. Есть к сожалению опыт... Постоянные со spid лучше. Или как вариант - с suid, если под одним логином только один чел в одном приложении работает - в этом случае можно условие suid=suser_id() во вьюшку воткнуть, а со @@spid такое не выйдет. suser_id() - Это значит что одн юзер может только с одного компа работать... иначе временные данные двух сессий пересекутся. А чем плохи #таблицы на уровне сессий? - в чем геморрой?... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2005, 13:14 |
|
||
|
ASE - временные таблицы
|
|||
|---|---|---|---|
|
#18+
авторПроцедуру без таблицы не залить. Алгоритм заливки такой: создается временная таблица , создается процедура, удаляется таблица ага, я так и сделал чтобы решить свой вопрос из топика. И все же интересно почему не любят #таблицы - еще какие-то глюки могут случиться? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2005, 13:37 |
|
||
|
ASE - временные таблицы
|
|||
|---|---|---|---|
|
#18+
Ну почему - #таблицы локально на уровне одной процедуры (скрипта, модуля) очень даже ничего. А вот если их использовать для передачи данных между процедурами - система получается трудно развиваемая/изменяемая хотябы потому что create и drop разнесены и отследить их можно только разобрав всю логику. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2005, 13:58 |
|
||
|
ASE - временные таблицы
|
|||
|---|---|---|---|
|
#18+
так в чем же проблема в создании #таблиц не в процедурах а сразу на уровне сессий?... все равно не понимаю.... Конешна ясный перец, что всякий раз нужно исполнять некий скрипт инициализации. Дык это нужно делать только один раз. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2005, 18:00 |
|
||
|
|

start [/forum/topic.php?fid=55&msg=33165330&tid=2013528]: |
0ms |
get settings: |
8ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
77ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
47ms |
get tp. blocked users: |
1ms |
| others: | 265ms |
| total: | 432ms |

| 0 / 0 |
