|
Ядро СУБД (MS SQL, Oracle, Sybase, DB2)
|
|||
---|---|---|---|
#18+
Буквально: 2 апреля был на сбороище Sybase. Выступали ихние инженеры, разработчики. Меня убило откровение: оказывается Sybase не использует многозадачность, ни многопоточность. В ядре у него встроен собственный скедулер, который и запускает поочередно задачи. А каждая задача должна самостоятельно вернуть управление основному процессу. Для примера DB2 - каждому соединению назначается собственный агент, который является либо потоком (Win,OS/2) либо процессом (UNIX). Интересно каким образом то же самое реализуется в Oracle и MsSQL? Анекдот в тему (бородатый только): Сын Биллу Гейтсу: -Папа, покажи как в Видузе реализована многозадачность? -Сейчас сынок..,только допечатаю... ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2003, 08:46 |
|
Ядро СУБД (MS SQL, Oracle, Sybase, DB2)
|
|||
---|---|---|---|
#18+
В случае с Sybase - ничего страшного. Если грамотно написанно - то все нормально. Винда 3.xx именно так и работает. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2003, 09:04 |
|
Ядро СУБД (MS SQL, Oracle, Sybase, DB2)
|
|||
---|---|---|---|
#18+
>Для примера DB2 - каждому соединению назначается собственный агент, который является либо потоком (Win,OS/2) либо процессом (UNIX). В Oracle два режима: 1) Dedicated server - аналогичен описанному тобой примеру с DB2 2) MTS - один серверный процесс может обслуживать сотню клиентских. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2003, 10:29 |
|
Ядро СУБД (MS SQL, Oracle, Sybase, DB2)
|
|||
---|---|---|---|
#18+
Вопрос принципиальный - касающийся производительности и надежности. Если падает единственный процесс... А как на счет параллелизма? Если одина задача слишком долго не возвращает управление? Все остальные - ждут? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2003, 10:39 |
|
Ядро СУБД (MS SQL, Oracle, Sybase, DB2)
|
|||
---|---|---|---|
#18+
Если говорить за SQL Server, то "у целом" картина следующая. Каждый инстанс является многопоточным. Потоки - "родные", операционной системы. Отдаются под обслуживание пользовательских соединений, либо под внутризапросный параллелизм. Когда что предпочесть, SQL Server решает сам в зависимости от числа текущих соединений и от стоимости запроса. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2003, 13:11 |
|
Ядро СУБД (MS SQL, Oracle, Sybase, DB2)
|
|||
---|---|---|---|
#18+
У оракла имеется свой resource manager, который в числе прочих задач может отдавать ресурсы процессора для пользовательских процессов в соответствии с планами распределения ресурсов. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2003, 14:38 |
|
Ядро СУБД (MS SQL, Oracle, Sybase, DB2)
|
|||
---|---|---|---|
#18+
>Вопрос принципиальный - касающийся производительности и надежности. Если падает единственный процесс... А как на счет параллелизма? Если одина задача слишком долго не возвращает управление? Все остальные - ждут? Я упрощенно ответил. На самом деле при МТS работает несколько серверных процессов и несколько процессов-диспетчеров, которые балансируют нагрузку между первыми. Ваша сессия прозрачно использует все серверные процессы, точнее каждый новый исходящий от нее сиквел может быть обслужен любым из свободных серверных процессов. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2003, 15:03 |
|
Ядро СУБД (MS SQL, Oracle, Sybase, DB2)
|
|||
---|---|---|---|
#18+
и что вы понимаете под параллелизмом? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2003, 15:05 |
|
Ядро СУБД (MS SQL, Oracle, Sybase, DB2)
|
|||
---|---|---|---|
#18+
Параллелизм - способность програмного обеспечения обрабатывать несколько подключений одновременно. (не путать с параллельным вводом - выводом и распараллеливанием запросов) ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2003, 17:31 |
|
Ядро СУБД (MS SQL, Oracle, Sybase, DB2)
|
|||
---|---|---|---|
#18+
это вообще то одна из базовых функций ОС. Оракл использует сервис ОС, но может учитывать и приоритетность собственных задач через директивы resource manager'a. Непонятно, чем вызвано ограничение в Sybase. В наши то дни ... ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2003, 17:39 |
|
Ядро СУБД (MS SQL, Oracle, Sybase, DB2)
|
|||
---|---|---|---|
#18+
to gardenman Moxzet chego nedoponjali , kak to uz bolno primitivno vse poluchaetsa. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.04.2003, 20:50 |
|
Ядро СУБД (MS SQL, Oracle, Sybase, DB2)
|
|||
---|---|---|---|
#18+
Да в том то и дело, что всё очень хорошо понял... Более того - ежедневно мучаюсь т.к. на Sybase работаю...((( ... |
|||
:
Нравится:
Не нравится:
|
|||
10.04.2003, 09:59 |
|
Ядро СУБД (MS SQL, Oracle, Sybase, DB2)
|
|||
---|---|---|---|
#18+
2 gardenman: А в чем мучения, если не секрет? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.04.2003, 11:47 |
|
Ядро СУБД (MS SQL, Oracle, Sybase, DB2)
|
|||
---|---|---|---|
#18+
еще вопрос - а на каком Sybase то - ASA или ASE ? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.04.2003, 12:49 |
|
Ядро СУБД (MS SQL, Oracle, Sybase, DB2)
|
|||
---|---|---|---|
#18+
2 killed >Непонятно, чем вызвано ограничение в Sybase. В наши то дни ... Да тем, что они сами многопоточность написали внутри своего SQL сервера, так что это не ограничение. Может даже оказаться, что лучше будет работать, ведь пишется под частный случай. Это как с malloc/new: если хотите, чтоб работало быстро - пишите свой внутри заранее алоцированного куска памяти. По всем признакам оракл так и сделал. Не помню как в юниксах, а в винде каждый thread при инициализации забирает примерно мегабайт мозгов, что есть довольно много. Поэтому существует правило: стараться не порождать больше потоков, чем мегабайт памяти. Вот сайбейз и решил, что он круче мелкософта, а заодно и сана с ИБМ, сам лучше сделает, тем более писался он когда NT, например, не было и в проекте. Если все аккуратно сделать, то действительно должно лучше работать. Недостаток один - больше работы, но на большом проекте возможно и окупится. Лично я бы так не делал, но меня не спросили. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.04.2003, 02:53 |
|
Ядро СУБД (MS SQL, Oracle, Sybase, DB2)
|
|||
---|---|---|---|
#18+
Я был на конференции по ASE. Так что все вышеизложенное касается ASE. В чем проблемы? поясняю: Иной раз (естественно из-з кривой разработки приложений и плохой модели) ккакая-нить задача полностью забирает на себя ресурсы одного из процессоров и производительность жутко падает. И еще, заметил одну особенность. У Sybase кажется плохо с распараллеливанием ввода-вывода. Почему-то разделив индексы/данные/лог по физическим дискам не получаешь того прироста производительности, как в других базах. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.04.2003, 11:56 |
|
Ядро СУБД (MS SQL, Oracle, Sybase, DB2)
|
|||
---|---|---|---|
#18+
>Почему-то разделив индексы/данные/лог по физическим дискам не получаешь того прироста производительности, как в других базах. Индексный доступ имеет последовательную природу. Поэтому разнеся данные и индексы на разные устройства вы получите лишь некую "балансировку" по вводу/выводу в целом на уровне базы (надо заметить, уже однозначно не сбалансированную ). С этой задачей гораздо лучше справляется хардварный страйпинг. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.04.2003, 12:45 |
|
Ядро СУБД (MS SQL, Oracle, Sybase, DB2)
|
|||
---|---|---|---|
#18+
подскажите г-да где почитать о устройстве ядра ms sql и как там всё работает для чайников! ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2012, 12:54 |
|
Ядро СУБД (MS SQL, Oracle, Sybase, DB2)
|
|||
---|---|---|---|
#18+
Alex5555555555для чайников! Для чайников там всё работает так: "ж-ж-ж-ж, чпок-чпок-чпок". Читать, естественно, в MSDN. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2012, 13:33 |
|
Ядро СУБД (MS SQL, Oracle, Sybase, DB2)
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2012, 14:16 |
|
Ядро СУБД (MS SQL, Oracle, Sybase, DB2)
|
|||
---|---|---|---|
#18+
On 05/22/2012 01:54 PM, Alex5555555555 wrote: > подскажите г-да где почитать о устройстве ядра ms sql и как там всё работает > для чайников! Книга Гарсиа-Молино, Ульман, Уидом. Читай. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2012, 14:52 |
|
Ядро СУБД (MS SQL, Oracle, Sybase, DB2)
|
|||
---|---|---|---|
#18+
А в последних MS SQL используется собственный шедулер и собственная многопоточность вместо многопоточности ОС? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2012, 15:10 |
|
Ядро СУБД (MS SQL, Oracle, Sybase, DB2)
|
|||
---|---|---|---|
#18+
> А в последних MS SQL используется собственный шедулер и собственная > многопоточность вместо многопоточности ОС? Что значит "в последних", когда традиционно так всегда было, теперь возможно переделали на fiber-ы. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2012, 15:33 |
|
Ядро СУБД (MS SQL, Oracle, Sybase, DB2)
|
|||
---|---|---|---|
#18+
SQL Server Batch or Task Scheduling Each instance of SQL Server has an internal layer that implements an environment similar to an operating system . This internal layer is used for scheduling and synchronizing concurrent tasks without having to call the Windows kernel . This internal layer can also schedule fibers or Windows threads effectively . Each instance of SQL Server maintains a pool of either Windows threads or fibers for processing user queries. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2012, 15:46 |
|
Ядро СУБД (MS SQL, Oracle, Sybase, DB2)
|
|||
---|---|---|---|
#18+
killed>Для примера DB2 - каждому соединению назначается собственный агент, который является либо потоком (Win,OS/2) либо процессом (UNIX). В Oracle два режима: 1) Dedicated server - аналогичен описанному тобой примеру с DB2 2) MTS - один серверный процесс может обслуживать сотню клиентских. И даже банальный FireBird работает точно также, и имеет два таких же режима. p.s. Sybase в топку ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2012, 16:30 |
|
|
start [/forum/topic.php?fid=35&fpage=11&tid=1552555]: |
0ms |
get settings: |
9ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
24ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
54ms |
get tp. blocked users: |
1ms |
others: | 11ms |
total: | 128ms |
0 / 0 |