Стандартная схема EAV: один столбец для идентификатора объекта, один для идентификатора атрибута, один для идентификатора значения.Каков самый быстрый способ запроса из исторической базы данных EAV
Историческая схема EAV: Добавить дополнительный столбец (ы) для времени/даты-диапазонов
Во время выполнения, некоторые строки будут исключены. Может быть 0, 1 или много строк, возвращенных для каждого объекта, за каждый атрибут. Нам нужно только самое последнее значение для каждого оставшегося атрибута.
Наше текущее решение использует функцию SQL Server Rank() для обозначения каждой строки с рангом, а затем в предложении where у нас есть «и rank = 1».
Однако производительность не является удовлетворительной. Во время анализа мы обнаруживаем, что назначение рангов довольно быстро, однако выполнение предложения where в отношении ранга требует второго сканирования данных и сохраняет весь набор данных в ОЗУ.
Каков самый быстрый способ ранжировать оставшиеся строки атрибутов и возвращать только последние?
Следуйте этим инструкциям, чтобы публиковать дополнительную информацию о вашем медленном запросе: http://www.brentozar.com/archive/2009/03/getting-help-with-a-slow-query/ –