Ponieważ jest to relacja „jeden do wielu”, przechowywałbym je w osobnej tabeli. Optymalizator zapytań serwera SQL (pod maską) będzie w stanie przeanalizować 250 rekordów na tyle szybko, że nie powinno to być problemem. Ponadto, w zależności od długości wartości w mniejszej tabeli, zaoszczędzisz miejsce na dysku, nie przechowując ich setki milionów dodatkowych razy. Jeśli jednak wydajność raportowania ma ogromne znaczenie, możesz zapisać je w jednej „spłaszczonej” tabeli — jak struktura hurtowni danych, bez łączeń. To na pewno będzie szybsze, ale poświęcisz miejsce na dane i ładnie ustrukturyzowaną relacyjną bazę danych.
Wszystko to powiedziawszy, wybrałbym opcję 1. Ale powinieneś być w stanie łatwo przechowywać dane w nowej tabeli w formacie opcji 2 - zapytanie względem obu z nich - a następnie samodzielnie ocenić wydajność. Spodziewam się, że nie będzie to dużej różnicy, zwłaszcza biorąc pod uwagę pojemność mniejszych stołów.