У меня есть вид, который выглядит следующим образом:
CREATE VIEW My_View AS
SELECT * FROM My_Table UNION
SELECT * FROM My_External_Table
Я обнаружил, что при упорядочивании данных, которые мне нужно сделать для разбивки на страницы, производительность очень низкая.Например, следующий запрос занимает почти 2 минуты, несмотря на то, что он возвращает только 20 строк:
SELECT * FROM My_View
ORDER BY My_Column
OFFSET 20 ROWS FETCH NEXT 20 ROWS ONLY
В отличие от этого следующий (бесполезный) запрос занимает менее 2 секунд:
SELECT * FROM My_View
ORDER BY GETDATE()
OFFSET 20 ROWS FETCH NEXT 20 ROWS ONLY
Я не могу добавитьиндексирует представление, поскольку оно не является SCHEMABOUND, и я не могу сделать его SCHEMABOUND, так как оно ссылается на внешнюю таблицу.
Есть ли способ улучшить производительность запроса или иным образом получить желаемый результат.Все задействованные базы данных являются AzureSQL.