Все рассмотренные до сих пор процедуры вычисления запросов концентрировались на оптимизации выполнения одиночного запроса. В [Chesnais et al. 1983] исследуется также влияние на производительность параллельного доступа к базе данных нескольких пользователей. Однако стратегии оптимизации запросов могут могут даже выходить за пределы простого параллелизма за счет разделения (sharing)
стоимости выполнения общих операций между несколькими запросами. Кроме того, стратегия, оптимизирующая одновременное выполнение нескольких запросов, может учитывать возможность инвестиций в дополнительные пути доступа, создание которых не было бы целесообразно по соображениям стоимости для одиночного запроса. Немногие подходв к оптимизации нескольких запросов можно разбить на три группы в соответствием со временем, когда принимаются решения:
Из набора запросов, поставляемых одним или несколькими примерно в одно и то же время, для более эффективной обработки может быть образован пакет [Shneiderman and Goodman 1976]. Методы пакетной обработки аналогичны тем, которые описывались в разд. 4.3 и предсназначались для вычисления переменных со многими переменными. Прежде всего, при вычислении запросов могут использваться результаты общих подвыражений [Grant and Minker 1981; Jarke 1984], и, если при вычислении разных подвыражений требуются обращения к одной и той же физической странице данных, то можно сделать это за одно обращение к вторичной памяти. Во-вторых, могут обеспечиваться временные физические пути доступа, такие как сортировка, хэширование или индексы, стоимость которых окупается для пакета в целом. Наконец, результаты некоторых запросов могут быть сохранены для обработки последующими запросами [Finkelstein 1982; Hevner and Yao 1981]. Как кажется, в этой области пока отсутствует согласованная теория. В [Kim 1981, 1984 и Jarke 1984] описываются языковые конструкции и предварительные архитектуры, и ряд выполняемых проектов рассматривается в [IEEE 1982].