Oracle On Windows

Основная проблема в различии между реализацией oracle под windows и linux. На Linux и других Unix операционных системах, каждому процессу выделяется процесс OS. В windows же это сделано через multithreading, т.е. есть один процесс и под ним создаются треды – подпроцессы.

В 32 битных приложениях, ограничения адресации в 4GB (3GB под пользовательские процессы) накладываются на уровне процесса. В Linux/Unix это еще не так страшно, так как может быть создано много oracle процессов. Однако в Windows только один oracle процесс, и соответственно эти ограничения накладываются на весь oracle.

Существуют способы как добраться до памяти сверх 3GB, через PAE или AWE, однако этот способ снижает производительность (из-за конвертации адресов). К тому же, некоторые критичные структуры памяти не могут использовать верхнюю память вообще. В результате, низкая производительность есть следствие ограничений кеша и структур памяти, что позволяет не больше 2000 одновременный пользователей (dedicated mode).

C выходом oracle 10g2 64 bit под windows и windows 2003 64 bit, эти ограничения преодолены. Кроме того у multithreading архитектуры есть свои преимущества (нет переключений контекста), которые в некоторых ситуациях позволяют oracle под winodws работать даже быстрее чем под linux. Это делает использование OS Windows приемлемым для работы с Oracle.

Однако, необходимо также учитывать надежность работы OS на протяжении длительного времени. Это предмет дальнейших наблюдений и исследований.