Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
большие SQL DB2
|
|||
|---|---|---|---|
|
#18+
Уважаемый All DB2 V8 стоит на Z/OS у нас удаленный доступ на запись (НЕ администрирование) те ни процедуры ни вью на таблицы создавать нельзя и даже посмотреть execution plan нельзя (пока по крайней мере) Надо написать несколько довольно сложных SQL для выборки данных из скажем 5-20 таблиц - для выборки осн. данных - к-е потом еще будут пост-процесситься но при этом по минимуму дергать сервер а в идеале вообще НЕ дергать ?1 я так понял что выбрать данные во временную таблицу а потом джойнить ее с другими нельзя как в SQL-Server ? это было бы идеально и для отладки и вообще ?2 WITH конечно поможет в нек-х случаях - но увы не всегда смотрю DB2 UDB V8.2 SQL Cookbook Graeme Birchall ничего больше не нашел может кто что скажет по этому поводу ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.01.2009, 19:41 |
|
||
|
большие SQL DB2
|
|||
|---|---|---|---|
|
#18+
автор ?1 я так понял что выбрать данные во временную таблицу а потом джойнить ее с другими нельзя как в SQL-Server ? это было бы идеально и для отладки и вообще Это почему это? .... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.01.2009, 19:45 |
|
||
|
большие SQL DB2
|
|||
|---|---|---|---|
|
#18+
gardenman, ну вот есть sql на 6 страниц да он рабочий что он читабельный ? а отлаживать его как ? ну допустим я написал а другому чел-ку вот я и спрашиваю про варианты вообщем и в моем конкретном случае зы вообщем похоже придется с With ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.01.2009, 16:36 |
|
||
|
большие SQL DB2
|
|||
|---|---|---|---|
|
#18+
Уважаемый Mark Barinstein, СПС за ссылку (в кукбукетоже нашел после подсказки ) DECLARE GLOBAL TEMPORARY TABLE SESSION.TEMPTAB1 AS ( Select * from M126 ) WITH NO DATA ; insert into SESSION.TEMPTAB1 (select * from M126); 17 rows selected Select * from SESSION.TEMPTAB1 -- SESSION.TEMP_EMP 0 rows selected поискал в гогле - поставил autocommit off стало 17 rows selected 1? Есть ли какое то отличие от таблиц создаваемых с помощью опции with ? 2?означает ли это из приложения на яве работающего через jdbc на Websphere эту конструкцию можно использовать если одновременно надо выполнять много запросов от различных юзеров с учетом того что много юзеров работают под одним DB userom ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2009, 15:14 |
|
||
|
большие SQL DB2
|
|||
|---|---|---|---|
|
#18+
DGTT (declare global temporary table) это совсем другое чем WITH. На DGTT вы можете и индекс навешать. Если запрос очень сложные но выборка (кол-во записей) не очень большое - предпочитаю WITH. потому как на малом количестве записей индексы не особо влияют на перфоменс. И наоборот, если много строк - то чтобы джойтить таблицы - тут по индексам надо. тогда - DGTT И еще - если юзаете много динамического SQL, то лучше 1 сложный запрос с WITH чем куча динамически созданных временных таблиц с небольшим количеством данных. DGTT не доступна из другой сессии (т.е. из другого коннекшена) поэтому DGTT в WebSphere имейте это в виду. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2009, 15:31 |
|
||
|
большие SQL DB2
|
|||
|---|---|---|---|
|
#18+
Гулин ФедорDECLARE GLOBAL TEMPORARY TABLE SESSION.TEMPTAB1 AS ( Select * from M126 ) WITH NO DATA ; insert into SESSION.TEMPTAB1 (select * from M126); 17 rows selected Select * from SESSION.TEMPTAB1 -- SESSION.TEMP_EMP 0 rows selected поискал в гогле - поставил autocommit off стало 17 rows selectedПо ссылке ведь можно было прочитать про опцию ON COMMIT PRESERVE ROWS... Гулин Федор 1? Есть ли какое то отличие от таблиц создаваемых с помощью опции with ?С помощью with (общее табличное выражение) вы создаете временную таблицу, на которую вы можете ссылаться только в селекте, в котором это выражение определено . DGTT же может быть использована в сессии несколько раз. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2009, 16:15 |
|
||
|
большие SQL DB2
|
|||
|---|---|---|---|
|
#18+
Гулин Федорозначает ли это из приложения на яве работающего через jdbc на Websphere эту конструкцию можно использовать если одновременно надо выполнять много запросов от различных юзеров с учетом того что много юзеров работают под одним DB userom Предупреждение касательно DB2 for z/OS и пула соединений WAS: Если будете создавать временные таблицы, желательно их удалять принудительно, как только они становятся не нужны, или объявлять их с опцией ON COMMIT DROP TABLE. По коммиту DB2 Thread должен переходить в неактивное состояние, а это возможно в случае, если нет блокировок (открытый курсор WITH HOLD, временная таблица, LOB-локатор с WITH HOLD ). Это позволит избежать "отстрела" зависших (IDLE) нитей со стороны DB2, да и позволит более оптимально использовать нити в DB2 for z/OS и в пуле сервера приложений. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2009, 16:33 |
|
||
|
большие SQL DB2
|
|||
|---|---|---|---|
|
#18+
Всем большое СПС за ответы -- И еще - если юзаете много динамического SQL, то лучше 1 сложный запрос с WITH чем куча динамически созданных временных таблиц с небольшим количеством данных речь идет именно о динамическом sql именно сложностью отладки и обусловлен топик - слоожно проверять подзапросы из With ( по крайней мере я не знаю как в (Quest Central)) Переформулирую 2 часть ? : Если в Quest Central (приложении) я зайду с нескольких машин под ОДНИМ ДБ юзером и запущу DGTT с Одинаковым именем в 1 момент времени не приведет ли это к конфликту ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2009, 16:56 |
|
||
|
большие SQL DB2
|
|||
|---|---|---|---|
|
#18+
DGTT уникальны для сессии... Между сессиями оны не видны... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2009, 23:03 |
|
||
|
большие SQL DB2
|
|||
|---|---|---|---|
|
#18+
Гулин Федор речь идет именно о динамическом sql именно сложностью отладки и обусловлен топик - слоожно проверять подзапросы из With ( по крайней мере я не знаю как в (Quest Central)) А что тут такого? Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2009, 22:37 |
|
||
|
большие SQL DB2
|
|||
|---|---|---|---|
|
#18+
Гулин Федор, а какая необходимость заходить с нескольких машин и запускать сложный запрос? Оцените результат Вашего запроса, если это несколько строк из миллиона, то это проще сделать каким то другим способом. И потом мб я туплю, но WebSphere вообщем то мб побоку если обращаться напрямую к DB2, естественно при разовой операции, т.е. можно разрузить БД от пользователей, остановив WSA, но в этом случае Ваш админ должен быть вкурсе. Если запрос будете применять регулярно, то тогда да нужно думать относительно того кака на него будет реагировать DB2 и смотреть как работает WSA с сессиями. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2009, 04:36 |
|
||
|
большие SQL DB2
|
|||
|---|---|---|---|
|
#18+
Всем СПС за ответы особенно Victor Metelitsa - так и буду делать еще раз администрирование - БД вообще НЕ у нас (БД удаленная) про Websphere я знаю только то что на ней будет крутиться и версию - 6 -- DGTT уникальны для сессии... Между сессиями оны не видны... если я на 1 ПК зашел под юзером A1 создал времен. таблицу T1 и еще на 10-100 ПК одноверменно это возможно ? (это требуется по условиям задачи - приложение запускается под нескольким дб юзерами) Я просто не понимаю термин сессия в данном контексте где она хранится на локальном ПК ? на DB2 сервере ? ?2 приложение будет запускать sql на БОЛЬШИХ объемах данных DGTT и SQL с WITH - есть ли какие то различия по производительности ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.01.2009, 19:31 |
|
||
|
большие SQL DB2
|
|||
|---|---|---|---|
|
#18+
Гулин ФедорВсем СПС за ответы если я на 1 ПК зашел под юзером A1 создал времен. таблицу T1 и еще на 10-100 ПК одноверменно это возможно ? (это требуется по условиям задачи - приложение запускается под нескольким дб юзерами) Гулин Федор Я просто не понимаю термин сессия в данном контексте где она хранится на локальном ПК ? на DB2 сервере ? Термин коннекция - понятен? сессия, коннекция, соединение - синонимы. Гулин Федор ?2 приложение будет запускать sql на БОЛЬШИХ объемах данных DGTT и SQL с WITH - есть ли какие то различия по производительности ? [/quot] По DGTT вы можете построить индекс, а также собрать статистику. Поэтому перфоменс будет лучше. Но... когда много динамического SQL, а данных мало, то ...надо посмнить что компиляция всякого запроса - это время. И иногда лучше выполнить один динамический запрос с WITH чем десять простых динамических запросов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.01.2009, 12:36 |
|
||
|
большие SQL DB2
|
|||
|---|---|---|---|
|
#18+
Честно говоря, при всех радостях WITH, когда я стал работать с запросами с парой десятков таблиц, некоторые из которых содержали миллионы строк, в конце концов мне пришлось переходить на ночные скрипты с заполнением промежуточными результатами даже не temporary, а обычных таблиц (чтобы не беспокоиться о доступе из других коннектов, индексах и статистике), ибо иначе я был не в силах добиться получения результата за обозримое время (т.е. не более полусуток в моём случае, с 8 вечера до 8 утра). Сейчас я пересматриваю код, чтобы пересчитывать только кусочек результирующего множества, а не всё, и, понятно, temporary tables тут тоже совсем не помошники, ибо надо хранить вспомогательные данные длительное время. В зависимости от запросов и данных, имеют смысл разные подходы. Для сложного запроса - я начинаю с запроса с WITH, а потом уже начинаю чесать в затылке, если производительность совсем неудовлетворительна и оптимизировать не удаётся. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.01.2009, 08:39 |
|
||
|
большие SQL DB2
|
|||
|---|---|---|---|
|
#18+
gardenman ,Victor Metelitsa и ВСЕМ , СПС за ответы время отклика запросов достаточно критично - надо нагеренить тест. данных посмотреть (миллионы записей будут похоже только в 1 новой таблице +во 2 таблице - номенклатуре куда они будут джойниться) ?1 можно ли как то посмотреть план оптимизациии запросов если нет возможности создавать таблицы (execution plan) есть какие-нибудь утилиты обойти это дело ? ?2 /topic/632150&pg=-1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.01.2009, 19:53 |
|
||
|
|

start [/forum/topic.php?fid=43&msg=35763675&tid=1603452]: |
0ms |
get settings: |
8ms |
get forum list: |
22ms |
check forum access: |
7ms |
check topic access: |
7ms |
track hit: |
42ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
59ms |
get tp. blocked users: |
2ms |
| others: | 250ms |
| total: | 411ms |

| 0 / 0 |
