Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.04.25;
Скачать: CL | DM;

Вниз

Вопрос про мидас   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.63 MB
Время: 0.043 c
3-1080391582
Karlson
2004-03-27 15:46
2004.04.25
ВЫзов метода DBGrid1CellClick из любого места программы


14-1080470983
Kolyan
2004-03-28 14:49
2004.04.25
классы и объекты


14-1080974831
Knight
2004-04-03 10:47
2004.04.25
Кто знает где обитают мастера по ремонту оборудования?


6-1077634195
Denis555
2004-02-24 17:49
2004.04.25
трабла с TNMHTTP


14-1080871443
Думкин
2004-04-02 06:04
2004.04.25
С днем рождения! 2 апреля.