Параллельная обработка запросов (многопоточность)

Средства встроенного SQL позволяют выполнять параллельную обработку нескольких запросов к одной БД или к различным БД. Однако поддержка операционной системой многопоточного режима является всего лишь необходимым, но не достаточным условием распараллеливания обработки запросов в приложении. Приложение, претендующее на многопоточную обработку запросов, должно дополнительно выполнить следующие условия:

  • для организации многопоточной обработки использовать предназначенные для этой цели специальные средства встроенного SQL и соблюдать некоторые ограничения, накладываемые на общие структуры данных;

  • в процессе исполнения использовать библиотеку, специально разработанную для многопоточных приложений.

Многопоточные приложения имеют несколько потоков, выполняемых в общем адресном пространстве. Потоки являются подпроцессами, которые осуществляются внутри процесса. Они используют общие сегменты кода и данных, но имеют собственные стеки. Глобальные и статические переменные являются общими для всех потоков, поэтому требуется собственный специфичный механизм управления подобными переменными из разных потоков внутри приложения. Также требуется особый механизм синхронизации обработки, чтобы обеспечить целостность данных.