Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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
3-1080298108
}|{yk
2004-03-26 13:48
2004.04.25
Упорядочивание


14-1080893286
peypivo
2004-04-02 12:08
2004.04.25
галстук


14-1080804199
Nikolay M.
2004-04-01 11:23
2004.04.25
1 апреля в СМИ


3-1080200163
Dido
2004-03-25 10:36
2004.04.25
BDE


4-1077210423
TankMan
2004-02-19 20:07
2004.04.25
Почему может GetDC(0) выдавать ошибку?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский