Это классический пример попытки использовать кувалду, когда нужен молоток. Вы хотите извлечь из таблицы некоторые сумасшедшие данные отчетов, но это убьет ваш SQL Server. Чтобы отслеживать изменения, вам нужно создать таблицу отслеживания специально для этой цели. Затем используйте триггер, который записывает изменение стоимости продукта в эту таблицу. Так что на моей таблице продуктов, когда я меняю цену, она попадает в таблицу отслеживания цен.
Если вы используете это для отслеживания цен на акции или чего-то подобного, тогда вы снова используете тот же подход, за исключением того, что вы проводите сравнение таблицы цен и, если происходит изменение, вы сохраняете его. Таким образом, сравнение происходит только с новыми данными, все старые сравнения по-прежнему хранятся в одном месте, поэтому вам не нужно повторно запускать запрос, который приведет к снижению производительности вашего SQL Server.