Форум: "Базы";
Текущий архив: 2004.04.25;
Скачать: [xml.tar.bz2];
ВнизВопрос про мидас Найти похожие ветки
← →
Dimk (2004-03-11 16:11) [40]2 serge35
Извини не врубился сразу...
Выходит что я по поводу оракла как раз с тобой согласен! :o)
← →
serge35 (2004-03-11 16:12) [41]Я знаю, что Oracle Applications, если сервер не может запустить несколько паралельных запросов, то просто добавляется администратор запросов и он их запускает и разруливает.
← →
Reindeer Moss Eater © (2004-03-11 16:12) [42]serge35
Ты сам-то себе не противоречь, да?
Оракл, насколько я знаю, все запросы ставит в очередь.
Как он выполнит второй запрос, если в очереди есть невыполненный первый
← →
Reindeer Moss Eater © (2004-03-11 16:15) [43]Alexander_K © (11.03.04 16:08) [37]
Reindeer Moss Eater © (11.03.04 16:03) [34]
У меня true
Хоть в хелпе и сказано, что д.б. True, но чувствую, что должно быть False.
Иначе все модули данных используют одно и то же подключение.
Отсюда и последовательная обработка запросов
← →
Alexander_K © (2004-03-11 16:15) [44]serge35 (11.03.04 16:12) [41]
Да я тоже не сразу врубился...
← →
Alexander_K © (2004-03-11 16:22) [45]Reindeer Moss Eater © (11.03.04 16:15) [43]
Попробовал, тоже самое
← →
serge35 (2004-03-11 16:25) [46]Оракл ставит запросы в очередь на выполнение.
Сначала запрос обрабатывает оптимизатор, затем только он
начинает выполнятся. После того, как оптимизатор закончил
работу с одним запросом, он берет следующий запрос из очереди.
И как бы вы ни пытались их запустить в паралель, все равно
запросы будут запускаться поочередно.
А то, что более короткий запрос отработал позже более длинного запроса - просто из-за того, что серверу постоянно приходится переключаться от одного запроса к другому, к тому же первый запрос отхватывает для себя больше ресурсов.
← →
Alexander_K © (2004-03-11 16:30) [47]serge35 (11.03.04 16:25) [46]
И что ты хочешь сказать, что если длинный запрос запустить, то никто больше работать не сможет???
← →
sniknik © (2004-03-11 16:30) [48]> Хоть в хелпе и сказано, что д.б. True, но чувствую, что должно быть False.
взять да проверить
(гдето там сверху было что счетчик RDM-ом был реализован)
это уже к автору вопроса, переделай чтобы строку показывало вместо чисел в нее вставьляй Database1.SessionName и проследи какие имена при подключении клиентов у тебя выдает. (может действительно все дефаулт)
← →
serge35 (2004-03-11 16:34) [49]Alexander_K - посмотри мой ответ № 38.
и найди 10 отличий в твоем последнем предложении.
← →
Reindeer Moss Eater © (2004-03-11 16:36) [50]А то, что более короткий запрос отработал позже более длинного запроса - просто из-за того, что серверу постоянно приходится переключаться от одного запроса к другому, к тому же первый запрос отхватывает для себя больше ресурсов.
Собственно я был против термина "очередь".
То что ты тут описал никак очередью называться не может. Это пул запросов.
← →
Alexander_K © (2004-03-11 16:41) [51]sniknik © (11.03.04 16:30) [48]
Как оно может быть дефаулт? Если свойство AutoSessionName стоит true
← →
Dimk (2004-03-11 16:49) [52]2 serge35
Я уже запутался с чем с Тобой согласен а с чем нет :o)
> И как бы вы ни пытались их запустить в паралель, все равно
> запросы будут запускаться поочередно.
Ну а Ты веришь что на виндах на 1 процессоре могут ПАРАЛЛЕЛЬНО
выполняться 2 задачи? :o)
В dedicated режимя для каждой сессии запускается dedicated процесс который и выполняет юзерские запросы.
В MTS есть целая куча shared servers которые берут запросы из очереди и выполняют их. И если их (shared servers) не хватает
они запускаются дополнительно.
И в самом деле если сейчас выполняется запрос который идет несколько часов и еще пройдет несколько часов - то если набрать select sysdate from dual - можно идти курить все это время?
← →
Reindeer Moss Eater © (2004-03-11 16:50) [53]Короче говоря выясняй сколько открывается сессий на оракле при работе твоих клиентов. Гадать на кофейной гуще больше не хочется
← →
Dimk (2004-03-11 16:53) [54]2 Alexander_K
А не хило бы проверить всеже действительно...
кто может поручиться что делает Borland там у нас за спиной :o)
← →
serge35 (2004-03-11 17:04) [55]Dimk - читать надо внимательнее.
> запросы будут запускаться поочередно.
а выполняться они будут паралельно.
как их будет выполнять Оракл - это только одному известно.
← →
Reindeer Moss Eater © (2004-03-11 17:06) [56]Ну и смысл тогда глубокомысленных высказываний
"запросы ставятся в очередь"
"И как бы вы ни пытались их запустить в паралель, все равно
запросы будут запускаться поочередно."
с точки зрения клиента Оракла и в контексте ветки????
← →
Reindeer Moss Eater © (2004-03-11 17:09) [57]Тем более, что очереди никакой нет - запросы обрабатываются параллельно.
← →
serge35 (2004-03-11 17:16) [58]С точки зрения клиента нет никакой разницы, как выполняются запросы. Клиент об этом просто ничего не знает. Он отправил
запрос и ждет ответ и все.
У меня есть пара вопросов:
Длина запроса выражается в сантиметрах или в чем-то еще?
и насколько короткий запрос короче длинного?
← →
Vlad © (2004-03-11 17:19) [59]
> Длина запроса выражается в сантиметрах или в чем-то еще?
> и насколько короткий запрос короче длинного?
Вырази в чем тебе угодно. Хочешь во времени обработки запроса сервером, хочешь в количестве ресурсов, как тебе угодно.
К чему этот вопрос ?
← →
serge35 (2004-03-11 17:25) [60]А может в количестве символов в запросе?
← →
Vlad © (2004-03-11 17:34) [61]
> serge35 (11.03.04 17:25) [60]
Может и в количестве символов, смотря в каком контексте.
Вот только читаю ветку и врубиться не могу к чему этот вопрос ?
← →
Reindeer Moss Eater © (2004-03-11 17:38) [62]Он хочет сказать что у первого клиента очень много букв в его запросе, который никак не может поставиться в "очередь"
и поэтому второй клиент курит
← →
Alexander_K © (2004-03-11 17:38) [63]Сделал такую вещь:
На форме сервера поставил листбокс и на онкриейт RDM повесил продцедуру добавляющую в листбокс DatabaseName и SessionName из компонента Database
DatabaseName у меня равно sss
При запусках клиентов получилось:
sss Session1_1
sss Session1_2
sss Session1_3
При запуске клиентов (3 шт) на оракле (судя по спотлайту) появилось 3 сессии.
При запуске запросов с каждого клиента получилось:
Сессия, которую запустил первую, стала активной и стала выполняться, остальные как были inactive так и остались..
← →
Alexander_K © (2004-03-11 17:40) [64]serge35
Хоре флудить да!!! Давай по существу!
← →
serge35 (2004-03-11 17:55) [65]> Сессия, которую запустил первую, стала активной и стала выполняться, остальные как были inactive так и остались..
Наконец-то появилась здравая идея - посмотреть, как же на самом
деле выполняются запросы.
Лично я это и называю очередью - когда один запрос запустился,
остальные ожидают, когда их обработает оптимизатор.
B Oracle Applications есть форма, в которой выведены все запросы и напротив каждого запроса прописан его статус.
Все прекрасно видно, какой запрос в каком состоянии.
Повторяю еще раз:
Запросы запускаются ПОСЛЕДОВАТЕЛЬНО, а выполняются ПАРАЛЕЛЬНО.
Для опыта предлагаю взять запросы которые очень сильно отличаются по "Длине". Допустим, один выполняется час, другой 2 сек.
Ситуация будет выглядеть так: сначала запуститься первый запрос, через некоторое время второй, ну а закончиться первым должен более "Короткий".
Представляю, что творилось бы в бухгалтерии, если бы пользовался такими терминами!
← →
Dimk (2004-03-11 17:59) [66]2 serge35
Не утрируйте... уж не пиарщик ли вы сударь?
Лично я думаю что речь идет о времени выполнения запроса.
Следовательно:
Длинный запрос - тот что выполняется долго.
Короткий запрос - тот что выполняется быстрее длинного в несколько раз, причем
на том же сервере и примерно в то же время.
Думаю что Автор имел в виду тоже, так как это следует из контекста его вопросов.
Итак:
Есть 2 запроса.
Один короткий :o)
Другой длинный.
Если запустить их из, 2 разных задач, сначала длинный а затем короткий, то короткий закончится раньше.
Если же из программы Автора, которая представляет собой
несколько клиентских программ и одного сервера приложений
в котором создаются несколько RDM, по числу клиентских программ,
запускаются эти запросы в той же последовательности - короткий заканчивается после длинного. Это может, конечно говорить о том что запросы выполняются последовательно (в данном случае).
Мной лично было проверено что дело не в сервере приложений. Сервер приложений прекрасно запускает несколько методов разных COM объектор параллельно.
Вообщето когда я делал подобный проект - я не обратил внимания на то что запросы выполняются последовательно так как мои запросы были КОРОТКИМИ ( :o) )
И тема между прочем серьезная и по ответам видно
что другие тоже не обращали внимания на такое обстоятельство.
Уф вот.
← →
Alexander_K © (2004-03-11 18:01) [67]serge35 (11.03.04 17:55) [65]
Так вот короткий как раз и заканчивается после длинного!!!
Собственно в этом-то и вопрос!
← →
Dimk (2004-03-11 18:03) [68]Именно.
На какой версии оракла работаете?
← →
Alexander_K © (2004-03-11 18:03) [69]Dimk (11.03.04 17:59) [66]
Именно это и имеется ввиду! :)
← →
serge35 (2004-03-11 18:04) [70]Сколько времени выполняется длинный запрос?
← →
Dimk (2004-03-11 18:05) [71]Простите :o)
Про версию оракла вопрос был к serge35
← →
Alexander_K © (2004-03-11 18:05) [72]serge35 (11.03.04 18:04) [70]
длинный запрос выполняется примерно 3 минуты
а короткий практически мгновенно
← →
serge35 (2004-03-11 18:15) [73]при такой разнце в росте, Оракл выполнит короткий запрос быстрее, чем длинный, если получит их одновременно. Это однозначно.
Значит Оракл получает второй запрос только после того, как выполнит первый. Отсюда вывод: проблема не в оракле, а в том диспетчере, который отправляет запросы на оракл.
← →
Dimk (2004-03-11 18:18) [74]Ну наконец - то :o)
← →
serge35 (2004-03-11 18:24) [75]У меня был проект на scktsrvr.exe, подобных проблем не возникало.
← →
Dimk (2004-03-11 18:29) [76]2 serge35
У меня тоже было на нем - но я уже писал что не придавал значения проверке параллельности работы.
А теперь сомневаюсь что там все было параллельно.
← →
serge35 (2004-03-11 18:34) [77]Может автор сообщения что-то утаивает?
или может он изобрел что-то свое?
← →
Dimk (2004-03-11 18:39) [78]2 serge35
А вот скажи Ты ПРОВЕРЯЛ что у Тебя запросы выполняются
параллельно? Я попытаюсь в свободное время
смоделировать ситуацию и чтобы использовалась не DCOM
а сокет сервер.
← →
roottim (2004-03-11 18:40) [79]и что за запросы ???
дело может быть в блокировке длинным запросом ресурса для короткого...
хотя если короткий это читающий select такого быть не должно...
но всеже запросы б в студию...
← →
Alexander_K © (2004-03-11 18:41) [80]roottim (11.03.04 18:40) [79]
Специально выбрал запросы по разным таблицам, так что тексты здесь не важны
Страницы: 1 2 3 4 вся ветка
Форум: "Базы";
Текущий архив: 2004.04.25;
Скачать: [xml.tar.bz2];
Память: 0.62 MB
Время: 0.04 c