Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
DDL in script
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. Server Message: Number 2714, Severity 16 Server 'SERVERNAME', Line 7: There is already an object named 'TableName' in the database. хотя print 'No!!!' не выполняецццо... Получаецццо: это в момент компиляции еще до выполнения идет проверка на create table и что эта таблица уже существует и выдаецццо сообщение оп ашипке? зачем так? И почему тогда в Код: plaintext 1. 2. 3. 4. 5. 6. Или я где-то в чем-то неправ?.. P.S. select @@version Adaptive Server Enterprise/12.5.1/EBF 11428/P/NT (IX86)/OS 4.0/ase1251/1823/32-bit/OPT/Wed Sep 17 11:10:54 2003 _________________ "Helo, word!" - 17 errors 56 warnings ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2007, 16:21 |
|
||
|
DDL in script
|
|||
|---|---|---|---|
|
#18+
Ex_Soft пишет: > Автор: "Ex_Soft" > > if not exists (select *1* > from sysobjects > where id = object_id(\'TableName\') > and type = \'U\') > begin > print \'No!!!\' > create table TableName ( > ... > ) > хотя print \'No!!!\' не выполняецццо... Получаецццо: это в момент > компиляции еще до выполнения идет проверка на create table и что эта > таблица уже существует и выдаецццо сообщение оп ашипке? зачем так? И Так уж повелось... надо писать так : if exists (select * from sysobjects where name = \'TableName\' and type = \'U\') drop table TableName go create table TableName ( ... ) go А твой скрипт вообще неправильный. object_id(\'TableName\') будет null если таблицы нет. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2007, 16:35 |
|
||
|
DDL in script
|
|||
|---|---|---|---|
|
#18+
> Так уж повелось... > надо писать так : > > if exists (select * from sysobjects where name = 'TableName' and type = 'U') > drop table TableName > go > > create table TableName ( > ... > ) > go Это - понятно... Но просто хотца нарисовать такой скрипт, который бы содержал в себе весь жизненный цикл обЪекта БД. Т.е. от Рождества Христова и до нынешних дней. И что бы не заморачиваться суппорту, а просто тупо его накатывать. С view'хами && SP'шками - все просто: drop'нул - создал. А, вот, с таблицами - засада: в них же данные. По сему вариант с убиением оных - не прокатывает. Получаецццо нуна создавать таблицу тока в одном случае: если ее - нЭт. А далее - просто alter'ить ее... > А твой скрипт вообще неправильный. > object_id('TableName') будет null если таблицы нет. гм... действительно... THNX подрихтую условие в if'е... Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2007, 17:09 |
|
||
|
DDL in script
|
|||
|---|---|---|---|
|
#18+
MasterZiv - а не подскажеш, как быть с времянкой тогда? То есть задача примерно такая же. проверить в процедуре - если есть времянка - транкейт, если нету - создать. В данном случае ведь не проканает select .. from tempdb..sysobjects. Так как име там будет не такое, да и баз темпдб несколько (хотя конечно можно определить текущую темпдб для сессии) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.10.2007, 18:01 |
|
||
|
DDL in script
|
|||
|---|---|---|---|
|
#18+
Тоже напрягает. Пока так. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.10.2007, 18:23 |
|
||
|
DDL in script
|
|||
|---|---|---|---|
|
#18+
MichaelTimMasterZiv - а не подскажеш, как быть с времянкой тогда? То есть задача примерно такая же. проверить в процедуре - если есть времянка - транкейт, если нету - создать. В данном случае ведь не проканает select .. from tempdb..sysobjects. Так как име там будет не такое, да и баз темпдб несколько (хотя конечно можно определить текущую темпдб для сессии) Большой совет. Не связываться с созданием объектов в tempdb "по необходимости". Есть более простые способы "вырыть себе могилу". Я вот нарывался на следующее. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. РезультатAdaptive Server Enterprise/12.5.3/object_id('#TestTable') is null (Таблицы еще нет)object_id('#TestTable') is not null (Таблица существует) 2Отгадайте с 3-х раз какой результат вернётся!id50Отгадайте с 5-ти раз какой результат вернётся!id01.01.2007 0:00:00.000 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.10.2007, 18:54 |
|
||
|
DDL in script
|
|||
|---|---|---|---|
|
#18+
москит - у меня ваш скрипт вообще вылетел с ошибкой. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. Adaptive Server Enterprise/12.5.3/EBF 13339 ESD#7/P/x86_64/Enterprise Linux/ase1253/1951/64-bit/OPT/Fri Mar 24 00:39:11 2006 "Большой совет. Не связываться с созданием объектов в tempdb "по необходимости"." Это в смысле вообще не использовать времянки? А как тогда? Хотел проверять на их существование, так как у меня немало процедур запускается подряд, которым можно сделать одну времянку, а не создавать внутри каждой свою. Большое количество клиентов и нарывался на блокировки в tempdb..sysindexes. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2007, 11:35 |
|
||
|
DDL in script
|
|||
|---|---|---|---|
|
#18+
MichaelTimмоскит - у меня ваш скрипт вообще вылетел с ошибкой. вот тут поле создаетеся id1. После исправления на id - скрипт отработал как и у вас. Adaptive Server Enterprise/12.5.3/EBF 13339 ESD#7/P/x86_64/Enterprise Linux/ase1253/1951/64-bit/OPT/Fri Mar 24 00:39:11 2006 С id1 опечатка. MichaelTim "Большой совет. Не связываться с созданием объектов в tempdb "по необходимости"." Это в смысле вообще не использовать времянки? А как тогда? Использовать, только не пытаемся create под if поставить. Не проверяем есть таблица, или нет, сразу пишем create. Либо объявляем, что процедура такая-то работает, только если перед её запуском создана временная таблица такая-то(не создаём, но используем), либо она не работает если создана таблица с таким-то именем, так как сама содержит create. Хотя всё это не спасает нас от ошибки из моего примера. Две таблицы с "одинаковыми" именами по прежнему создать можно. Причина, object_id может не увидеть таблицы, потому что он ищет её не только по первым 12-ти символам и @@spid, но и @@nestlevel. MichaelTim Хотел проверять на их существование, так как у меня немало процедур запускается подряд, которым можно сделать одну времянку, а не создавать внутри каждой свою. Создать таблицу перед вызовом первой из этих процедур, а в процедурах таблицы не создавать. Всё равно таблица созданная в процедуре, по окончании её выполнения сама дропнется, а значит в следующей процедуре её опять создавать заново. MichaelTim Большое количество клиентов и нарывался на блокировки в tempdb..sysindexes. Самые часто используемые временные таблицы можно создать один раз при коннекте к базе. Злоупотреблять не стоит, можно получить конкуренцию при одновременном коннекте большого числа пользователей, например, при рестарте сервака. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2007, 07:41 |
|
||
|
DDL in script
|
|||
|---|---|---|---|
|
#18+
москит пишет: > Самые часто используемые временные таблицы можно создать один раз при > коннекте к базе. Злоупотреблять не стоит, можно получить конкуренцию при > одновременном коннекте большого числа пользователей, например, при > рестарте сервака. Самые частоиспользуемые временные таблицы можно сделать постоянными псевдовременными в tempdb. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2007, 07:43 |
|
||
|
DDL in script
|
|||
|---|---|---|---|
|
#18+
MasterZiv Самые частоиспользуемые временные таблицы можно сделать постоянными псевдовременными в tempdb. А в чем смысл? хочется сделать чтобы таблицы были для каждого конекта своя - чтобы не было блокировок. Имхо временная таблица для этого лучше. или я не прав? чем лучше/хуже псевдовременная в tempdb? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2007, 12:26 |
|
||
|
DDL in script
|
|||
|---|---|---|---|
|
#18+
MichaelTim пишет: > А в чем смысл? хочется сделать чтобы таблицы были для каждого конекта > своя - чтобы не было блокировок. Имхо временная таблица для этого лучше. > или я не прав? чем лучше/хуже псевдовременная в tempdb? Лучше - тем, что не надо создавать ее все время. Например, если это надо делать в транзакции, это плохо, т.к. будет блокироваться tempdb.sysobjects. Хуже - тем, что надо поддерживать разделение по пользователям ручками. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2007, 13:38 |
|
||
|
DDL in script
|
|||
|---|---|---|---|
|
#18+
MasterZiv Хуже - тем, что надо поддерживать разделение по пользователям ручками. фильтр по спидам ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2007, 14:25 |
|
||
|
DDL in script
|
|||
|---|---|---|---|
|
#18+
да я в принципе до этого делал вариант с обычной таблицей в своей БД. естественно для разделения завел два поля spid и procid. Для разделения по пользователям и по процедурам (если понадобится). Но посчитал что всеже создавать времянки получше будет. - никаких блокировок в смысле данных (так как у каждого своя таблица) ну т.д. Но тут возникли блокировки в tempdb..sysindexes. Сейчас вот админы сделали 4-ре tempdb. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2007, 11:17 |
|
||
|
DDL in script
|
|||
|---|---|---|---|
|
#18+
MichaelTimда я в принципе до этого делал вариант с обычной таблицей в своей БД. естественно для разделения завел два поля spid и procid. Для разделения по пользователям и по процедурам (если понадобится). Но посчитал что всеже создавать времянки получше будет. - никаких блокировок в смысле данных (так как у каждого своя таблица) ну т.д. Но тут возникли блокировки в tempdb..sysindexes. Сейчас вот админы сделали 4-ре tempdb. вам просто уменьшили в 4 раза вероятность драки за sysindexes в случае постоянных временных таблиц максимум что у вас будет - драка за страницу данных/индекса; и то, на это можно влиять ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2007, 17:25 |
|
||
|
DDL in script
|
|||
|---|---|---|---|
|
#18+
так чем в моем описании как было реалиовано будет отличаться использование постоянных времянок от просто постоянной таблицы? С DOL. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.10.2007, 10:26 |
|
||
|
DDL in script
|
|||
|---|---|---|---|
|
#18+
MichaelTimтак чем в моем описании как было реалиовано будет отличаться использование постоянных времянок от просто постоянной таблицы? С DOL. врЕменные данные должны лежать во врЕменной БД ;) её проще перенастроить при проблемах с производительностью - раскидать по разным девайсам, каналам хранилища, положить в RAM и т.п. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.10.2007, 12:01 |
|
||
|
|

start [/forum/topic.php?fid=55&msg=34851059&tid=2011879]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
53ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
46ms |
get tp. blocked users: |
1ms |
| others: | 258ms |
| total: | 396ms |

| 0 / 0 |
