Перезапись запроса позволяет Oracle переписать запрос к базовой таблице (в данном случае TEST_DATE), чтобы прозрачно использовать материализованное представление (в данном случае TEST_SYS). Это очень полезно, например, когда ваше материализованное представление предварительно агрегирует данные. Если у меня есть таблица транзакций и материализованное представление
CREATE MATERIALIZED VIEW mv_transaction_daily
REFRESH FORCE ON DEMAND
ENABLE QUERY REWRITE
AS
SELECT store_id,
transaction_day,
SUM(transaction_amount) total_transaction_amount
FROM transactions
GROUP BY store_id, transaction_day
тогда Oracle может преобразовать запрос как
SELECT store_id,
transaction_day,
SUM(transaction_amount) total_transaction_amount
FROM transactions
GROUP BY store_id, transaction_day
использовать материализованное представление, а не попадать в базовую таблицу. И если у вас есть соответствующие объекты измерений, вы можете запросить, например,
SELECT store_id,
trunc(transaction_day,'MM'),
SUM(transaction_amount) monthly_transaction_amount
FROM transactions
GROUP BY store_id, trunc(transaction_day,'MM')
, который также можно переписать, чтобы использовать материализованное представление, а не базовую таблицу.
Если перезапись запросов не включена, вы получите преимущество в производительности от использования материализованного представления, если явно запросите материализованное представление, а не запросите базовую таблицу. Как правило, это требует больше усилий по разработке и ограничивает возможности администраторов баз данных настраивать приложение в будущем путем тонкой настройки материализованных представлений.
В вашем случае наличие SYSDATE в вашем предложении WHERE предотвратит перезапись запроса, потому что Oracle не сможет выяснить, что запрос к TEST_DATE действительно сможет использовать материализованное представление. Oracle знает, что данные в материализованном представлении, которые удовлетворяли условию, когда материализованное представление было обновлено, больше не удовлетворяют условию, а данные, которые не попали в материализованное представление, теперь удовлетворяют условию просто потому, что SYSDATE изменился. *