MS SQL неоптимально хранит данные, это тоже одна из причин большого объёма БД.
А какие СУБД хранят данные оптимальнее?
Мне доводилось несколько раз портировать одни и те же данные под разные СУБД. С точки зрения хранения данных... БД под MS SQL или ASE (Adaptive Server Enterprise (Sybase)) объём БД был существенно больше (в разы), чем, например, под Firebird или SQL Anywhere (Sybase) или DB2 (IBM). Поэтому получить БД размером в несколько гигабайт на MS SQL проще, чем на многих других СУБД. При этом реакция на запросы у MS SQL не всегда лучшая (крайне не любит вложенные JOIN, например), хотя, в целом, по сравнению с бесплатными СУБД (Firebird, Postgress) и недорогими (Anyware) производительность MS SQL выше. В проприетарных СУБД от известных производителей картина с производительностью крайне неоднозначна и стандартное тестирование не делает картину более понятной, поскольку СУБД "заточены" на стандартные тестовые пакеты (TPC (см., например,
http://www.tpc.org)). Ещё более трудной для понимания выглядит ситуация с Oracle, там избыточно (на мой взгляд) много оптимизационных настроек, поэтому понять и объяснить те или иные результаты тестирования производительности может только опытный орклоид (админ), коим я не являюсь.