Немного теории. Временные таблицы #372724


#0 by H A D G E H O G s
День добрый. Некоторые обзывы о Временных Таблицах. Стал увлекаться изпользованием этого чуда, и возникли сомнения, которые решил проверить. По результатам: 1) Временные таблицы 1С - это локальные временные таблицы SQL, со всеми их последствиями. Это НЕ таблицы в оперативной памяти, они храняться в базе tempdb. 2) Временная таблица в SQL очищается после того, как мы очистим Менеджер временной таблицы в 1С (или код выйдет за область видимости переменной) 3) Однако временная таблица в SQL продолжает существовать, пока есть коннект к SQL -ю (даже из конфигуратора), или мы не выполнили запрос УНИЧТОЖИТЬ 4) И Самое Важное: я не увидел создания ИНДЕКСА для временной таблицы в SQL, скажем код вида:     ИНДЕКСА во временной таблице не создаст.. Вот такие исследование. Критика/тыкание носом в ошибки приветствуется. P.S. В дальнейшем удержусь от необузданного использования этого чуда. Уж лучше индексированная ТЗ.
#1 by Sadovnikov
Возвращайся в реальный мир - ты с 1С работаешь :) Я вчера такой пример приводил: "Выполняем элементарный запрос: From Документ.ПоступлениеТоваров Док_Товары 1С-ка при этом создает временную таблицу. А удалять ее даже и не собирается. Делает ей TRUNCATE TABLE и успокаивается. И пры завершении сеанса тоже даже не думает за собой прибраться. В итоге наблюдаем веселую картину - туеву хуча временных таблиц, висящих до тех пор, пока сервер 1С-ки не перезапустишь. "
#2 by H A D G E H O G s
Ну и пусть висят. Какая разница? Они же только своей структурой наполнены..
#3 by H A D G E H O G s
Сервер перезапускать необязательно. Достаточно всем отключиться от 1С.. :-)
#4 by Immortal
на ИТС написано  надо tempdb настроить и работать с ними правильно. есть такое тож на ИТСе а как по твоему определить ключ?
#5 by wPa
Не забывай закрывать МВТ, а то получишь не хреновую утечку памяти
#6 by H A D G E H O G s
Ну а насчет индекса кто - что скажет? Я его не проглядел?
#7 by Sadovnikov
Можно узнать, как в ИТС-е обосновывают такую неряшливую работу с таблицами?
#8 by Fragster
рекурсия?
#9 by KAO111
А если использовать ключевое слово ИНДЕКСИРОВАТЬ ПО ?
#10 by ptiz
Для добавления индексов во временные таблицы используется ключевое слово ИНДЕКСИРОВАТЬ ПО в тексте запроса
#11 by Immortal
см п. 4.. При необходимости создания индекса для временной таблицы, следует в запросе указать ключевое слово ИНДЕКСИРОВАТЬ ПО, после которого перечислить поля, по которым нужно построить индекс. Например: ВЫБРАТЬ Код, Наименование ИНДЕКСИРОВАТЬ ПО Код Поля, по которым происходит индексирование должны находиться в списке выборки.
#12 by wPa
))) выход из рекурсии сразу на
#13 by Immortal
в смысле что структуры висят после использования? там про это не написано-)
#14 by Sadovnikov
Сильный ответ от 1С :) Тоесть, они даже никакого обоснование криворукости придумать не смогли?
#15 by Defender aka LINN
Проглядел.
#16 by H A D G E H O G s
Точно, проглядел.. Даже вкладка в конструкторе появляется.. Все, тогда все хорошо. Молодцы, 1С-овцы..
#17 by H A D G E H O G s
Я вот посмотрел, что при одном и том - же запросе они используют одну и туже таблицу. Без нового создания..
#18 by Immortal
:D на партнёрском надо поискать, может чего и объясняли.А так вообще не встречал доводов ни за ни против(официальных)
#19 by Immortal
я с вами обед блин пропущу-) убёх
#20 by Sadovnikov
Да, одну и ту же. Но это не повод оставлять ее на сервере и после выхода из 1С.
#21 by H A D G E H O G s
Очистку и удаление Врем. таб. доверили программисту. Ну я в - это исключение из правил, которое будет исправлено наверное.
#22 by Sadovnikov
А позволь узнать - как ты сможешь удалить эту временную таблицу из примера в ? Хотя бы ее имя как узнаешь?
#23 by H A D G E H O G s
Нет, нет, я говорю, про созданные 1С -ником Временные таблицы через МенеджерВременныхТаблиц.. А в - это косяк, несущественный, может и исправят.
#24 by wPa
Ну а что неправильного? truncate log on checkpoint для  tempdb всегда включена. Сам очистится. Или будешь ждать транзакцию чтобы выйти из 1С?
#25 by Sadovnikov
С одной стороны - несущественный косяк. С другой - показывает раздолбайское отношение 1С к разработке платформы. Плюс, на сколько я помню, восьмерка же позиционировалась как супер-пупер прога для офигенно крупных контор с большим количеством пользователей? Вот там-то как раз этот косяк и будет весьма существенным. Вкупе с остальными.
#26 by wPa
Да на эти грабли наступили. Закрывать даже если там одна запись
#27 by Sadovnikov
Кто сам очистится-то? Загляни в tempdb и возрадуйся.
#28 by Sadovnikov
"Сервер перезапускать необязательно. Достаточно всем отключиться от 1С" - нифига не достаточно.
#29 by Ferz
Вот еще о временных таблицах
#30 by wPa
Я радуюсь. 200 мегов  - У нас сервер SQL перезапускается ежедневно. Поставь автошринк для нее...
#31 by Sadovnikov
"У нас сервер SQL перезапускается ежедневно" - а теперь представь работу базы 24*7.
#32 by wPa
если бекап ее не делаешь - отдельно сжимай. У нас полные бекапы поэтому смысла нет - проще перегрузить.
#33 by wPa
см. . в регламент добавь шринк или автошринк - будет при бекапе. Короче - решаемо не проблема - тем более для тебя
#34 by H A D G E H O G s
За это - спасибо, буду вникать.
#35 by Sadovnikov
Так я же не говорю, что это дикая нерешаемая проблема :) Просто, показал как пример безалаберности прогеров 1С :(
#36 by Immortal
усё. сровняли 8 с плинтусом.. подумаешь, кактус, мы и не такое ели-)
#37 by Sadovnikov
Как? Неужели я забил последний гвоздь в этом благородном начинании??? :)
#38 by Immortal
кончен, тебе только молоток дай, ты и Нуралиева-кормильца пришибёшь-)
#39 by Immortal
кончен=конечно
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С