В СУБД есть возможность оптимизировать показатели там, где имеется ограниченное количество значений. Как сказать SQL сделать это, я не знаю. Может разберется.
запустите хранилище данных, если производительность отчетов является серьезной проблемой.
Как указывает Джо, база данных должна быть максимально нормализована. Если у вас есть отдельная функция отчетности, которая может вызвать проблемы с производительностью, вы должны запустить периодическое преобразование (или установить правила для создания в реальном времени) второй схемы только для чтения. Первый — это OLTP, а второй — OLAP («хранилище данных»); это важные концепции, которые необходимо иметь в виду, если вы собираетесь серьезно относиться к своим данным.
Если это достаточно важно знать, проверьте это.
Если никто не дает вам ответа, лучший способ сделать это — проверить самостоятельно.
(1) сделать 2 базы данных
(2) каждый с тестом ваших 2 таблиц
(3) В базе данных просто присоединяется к строке «цвет» и использует ее для FK; другой присоединяется через int ('colorID')
Заполните каждый 2 миллионами фиктивных строк. Запустите несколько запросов для каждого, синхронизируя 1-й запуск и средние запуски.
Используйте экземпляр на своей машине разработки, чтобы вывести сеть из поля зрения.
Вы также должны запускать и останавливать экземпляр перед каждым типом теста; вещи будут намеренно оставаться в памяти, чтобы SQL мог доставлять их быстрее, но, вероятно, это исказит результаты ваших тестов по сравнению с реальными операциями, где они могут больше не находиться в памяти или кэшироваться.
person
FastAl
schedule
14.09.2012