Переключение на Главную Страницу Страницы: 1 [2]  ОтправитьПечать
Очень популярная тема (более 25 ответов) использование временных таблиц в 1cpp (число прочтений - 12448 )
Nice
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 26
Зарегистрирован: 09. Июля 2007
Re: использование временных таблиц в 1cpp
Ответ #15 - 29. Января 2013 :: 16:16
Печать  
berezdetsky писал(а) 29. Января 2013 :: 09:10:
На это можно было бы процитировать BOL: Цитата:
В модели восстановления с неполным протоколированием и в простой модели массовые операции минимально протоколируются.  При минимальном ведении журнала использование инструкции SELECT… INTO может оказаться более эффективным, чем создание таблицы и заполнение ее инструкцией INSERT.

Но, честно говоря, я никогда тщательно не исследовал этот вопрос.  Нерешительный

BOL - это хорошо, только наверное это по SQL  2005, хотя я читал что от описанной мой проблемы еще в 7 версии вроде бы избавились.
Тем не менее, лично наблюдал падение сервера при запуске отчета с использованием подобной инструкции. Может правильней не рисковать?
  
Наверх
 
IP записан
 
Nice
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 26
Зарегистрирован: 09. Июля 2007
Re: использование временных таблиц в 1cpp
Ответ #16 - 29. Января 2013 :: 16:21
Печать  
и к стати, очень рекомендуется не забывать удалять временные таблицы после их использования
  
Наверх
 
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: использование временных таблиц в 1cpp
Ответ #17 - 31. Января 2013 :: 08:32
Печать  
Nice писал(а) 29. Января 2013 :: 07:42:
Во всех тупых учебниках, для тупых программистов, написано, что при создании временных таблиц метод SELECT... INTO... использовать не рекомендуется, т.к. на время создания временной таблицы блокируется база TEMPDB и соответственно в зависимости от размеров временной таблицы время блокировки будет увеличиваться.

Посмотрел одним глазом. Шаред блокировка базы вряд ли будет кому-то мешать в продакшене, а блокировка схемы, пока речь идёт о локальных временных таблицах, вообще никому не мешает.
Конечно, если бы речь шла о создании обычных или глобальных временных таблицах, было бы немного интереснее, но я не представляю, как можно "сервер завалить" таким способом.
Допускаю, впрочем, что я чего-то не заметил и готов изменить своё мнение, взглянув на соответствующий тестовый стенд.


Nice писал(а) 29. Января 2013 :: 16:21:
и к стати, очень рекомендуется не забывать удалять временные таблицы после их использования

Ага, также рекомендуется плевать через левое плечо и стучать по дереву.  Улыбка Некоторым помогает..
Это, скорее, религиозный (холиварный) вопрос.
  

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
Nice
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 26
Зарегистрирован: 09. Июля 2007
Re: использование временных таблиц в 1cpp
Ответ #18 - 31. Января 2013 :: 16:45
Печать  
Nice писал(а) 29. Январь 2013 :: 19:21:
и к стати, очень рекомендуется не забывать удалять временные таблицы после их использования

Ага, также рекомендуется плевать через левое плечо и стучать по дереву.   Некоторым помогает..
Это, скорее, религиозный (холиварный) вопрос.

Вот это вы зря написали!
Приведу пример:
У меня, допустим, более 50 пользователей.
И все они, каждый божий день, просто стремятся запустить максимально возможное количество отчетов.
И блин чуть не в каждом используются временные таблицы.
И еще у меня 5 программистов.
И они, очень часто, используя одни и те же наборы данных, как то не могут договорится чтобы использовать одни и те же временные таблицы.
Мало того они даже в своих собственных отчетах, обзывают гады, их все время по разному.
Внимание вопрос:
Какое пространство я должен выделить для базы TEMPDB
  
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3051
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: использование временных таблиц в 1cpp
Ответ #19 - 31. Января 2013 :: 17:17
Печать  
Ну так если договориться не получается и временные таблицы во всех 100500 отчетах называются по-разному, то тогда наверно надо удалять. Но интересно как тогда удается договориться с этими "гадами" что бы они подчищали за собой?

Я так всегда в отчетах нумерую #tmp1, #tmp2, #tmp3...  и не парюсь с удалением
  

1&&2&&3
Наверх
 
IP записан
 
Nice
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 26
Зарегистрирован: 09. Июля 2007
Re: использование временных таблиц в 1cpp
Ответ #20 - 31. Января 2013 :: 17:19
Печать  
Ну удалять то за собой дерьмо научить проще по моему
  
Наверх
 
IP записан
 
Nice
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 26
Зарегистрирован: 09. Июля 2007
Re: использование временных таблиц в 1cpp
Ответ #21 - 31. Января 2013 :: 17:20
Печать  
особенно если не давать советов которые на самом деле не очень корректны
  
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3051
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: использование временных таблиц в 1cpp
Ответ #22 - 31. Января 2013 :: 17:21
Печать  
Nice писал(а) 31. Января 2013 :: 17:19:
Ну удалять то за собой дерьмо научить проще по моему

это предположение или практика?
  

1&&2&&3
Наверх
 
IP записан
 
Nice
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 26
Зарегистрирован: 09. Июля 2007
Re: использование временных таблиц в 1cpp
Ответ #23 - 31. Января 2013 :: 17:24
Печать  
trad писал(а) 31. Января 2013 :: 17:21:
Nice писал(а) 31. Января 2013 :: 17:19:
Ну удалять то за собой дерьмо научить проще по моему

это предположение или практика?

Практика.... Если человек понимает что такое дерьмо ему как то стыдно его после себя оставлят
  
Наверх
 
IP записан
 
Nice
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 26
Зарегистрирован: 09. Июля 2007
Re: использование временных таблиц в 1cpp
Ответ #24 - 31. Января 2013 :: 17:28
Печать  
Я так всегда в отчетах нумерую #tmp1, #tmp2, #tmp3...  и не парюсь с удалением

это ведь тоже не совсем правильно... а когда их много поди разберись какой это #tmp
нас ведь наверное не зря учили давать значащие иимена
  
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3051
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: использование временных таблиц в 1cpp
Ответ #25 - 31. Января 2013 :: 17:44
Печать  
Nice писал(а) 31. Января 2013 :: 17:28:
[quote]это ведь тоже не совсем правильно... а когда их много поди разберись какой это #tmp
да, нормально вроде - не путаюсь

Цитата:
нас ведь наверное не зря учили давать значащие иимена
я проще смотрю на вещи: где удобнее именовать сущности - именую, а где удобнее нумеровать - нумерую Улыбка
  

1&&2&&3
Наверх
 
IP записан
 
ADirks
1c++ developer
1c++ moderator
Отсутствует


А нужны ли мы нам?

Сообщений: 692
Местоположение: Новосибирск
Зарегистрирован: 22. Мая 2006
Пол: Мужской
Re: использование временных таблиц в 1cpp
Ответ #26 - 01. Февраля 2013 :: 02:56
Печать  
А мы временные таблицы вообще GUID'ами называем. Гарантировано не пересекутся. Хотя в большинстве случаев они конечно удаляются, ибо создаются и удаляются генератором текстов запросов.
  
Наверх
 
IP записан
 
Satans Claws
God Member
*****
Отсутствует


1C++ rocks!

Сообщений: 721
Зарегистрирован: 29. Ноября 2010
Re: использование временных таблиц в 1cpp
Ответ #27 - 01. Февраля 2013 :: 09:36
Печать  
berezdetsky писал(а) 31. Января 2013 :: 08:32:
Nice писал(а) 29. Января 2013 :: 16:21:
и к стати, очень рекомендуется не забывать удалять временные таблицы после их использования

Ага, также рекомендуется плевать через левое плечо и стучать по дереву.  Улыбка Некоторым помогает..
Это, скорее, религиозный (холиварный) вопрос.


Какой-нить робот, который постоянно генерит какие-нить отчеты, и который рестартится в лучшем случае раз в неделю, легко может иметь генерить тысячами временных таблиц. И я бы предпоччел их удалять, чем ждать когда они сами сдохнут с закрытием SPID.
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1 [2] 
ОтправитьПечать