Проблема: Меня смущает, как использовать индексированные столбцы для повышения производительности или ускорения времени выполнения, особенно в оконных функциях.
Ситуация: Яранжирование транзакций на основе даты заказа (от самой старой до самой новой).Мой первый инстинкт - это ЗАКАЗАТЬ по отпускной дате транзакции (в разделе Разделение по).Но тогда столбец транзакции_id индексируется и является первичным ключом таблицы.Если посмотреть на свойства таблицы, то свойство Identity Increment будет пустым (не знаю почему, но угадываю его автоинкремент).Таким образом, я предполагаю, что упорядочение по транзакции за транзакцией даст тот же результат, но значительно улучшит скорость выполнения.
У меня есть следующий запрос:
SELECT
transaction_id
,CAST(subscription_id as VARCHAR) as subscription_id
,product_id
,ROW_NUMBER() OVER (PARTITION BY subscription_id ORDER BY issue_date ASC) AS tx_rank
FROM table.transactions
Должен ли я срочно переключить Issue_Date на транзакцию_ид как таковую:
ROW_NUMBER() OVER (PARTITION BY subscription_id ORDER BY transaction_id ASC) AS tx_rank
Примечание: Этот запрос занимает более 10 млн., И я хочу максимально повысить его производительность.