Кто-нибудь знает о каких-либо верхних пределах размера таблицы в SQL Server 2008. У меня есть друг, который хочет хранить около 900 000 000 записей в одной таблице. Я ничего не знаю о рассматриваемых записях или о том, насколько сильно они будут прочитаны / обновлены.
Очевидно, им нужно будет подумать об индексировании и дисковом вводе-выводе, но мне было интересно, есть ли у кого-нибудь опыт работы с действительно большими таблицами в SQL Server 2008, которыми они могли бы поделиться?
У меня сейчас есть база данных, в которой есть одна таблица с примерно 1,8 миллиардами записей (да, B, а не M). В той же БД есть еще одна таблица с примерно 740 миллионами записей.
Общий размер БД составляет около 300 ГБ.
Сервер работает нормально. Это четырехъядерный процессор Xeon с 32 ГБ оперативной памяти и очень-очень быстрым дисковым массивом.
Что касается советов и хитростей:
Серьезно подумайте, зачем вам столько данных. Это ОЧЕНЬ много, с которым нужно иметь дело одновременно. Кроме того, после настройки забудьте об изменении индексов, столбцов и всего остального. Для выполнения этих операций с такими большими таблицами требуется слишком много времени.
Серьезно подумайте, зачем вам столько данных. Да, повторяюсь. Если возможно, найдите другой способ. Восстановление БД такого размера является полной PITA и может занять длинный время ... Примерно через день.
Если возможно, соберите ваши данные значимым образом. Если вы используете данные для построения трендов, постарайтесь как можно скорее выполнить свои вычисления и выбросить базовые данные. Конечно, если по какой-то причине необходимо сохранить базовые данные, сохраните их в плоском файле или в другом месте.
Не используйте никакую форму шифрования с таким размером БД. Если ваши данные требуют этого, то планируйте потратить много денег на оборудование (как в диапазоне от 1 миллиона долларов).
Не торопитесь и протестируйте различные модели восстановления .. Вплоть до полной загрузки сервера во время транзакции. Посмотри, что получится. Я обнаружил, что мне лучше всего подходит «простой».
Мои данные в основном транзакционные и, откровенно говоря, не критичны. Если бы вся дб внезапно упала на его лицо, ну, несколько бровей могли бы быть приподняты из-за ничего серьезного.
БД обслуживает около 150 запросов в секунду. 99,999% из которых пишет. Каждую ночь мы сворачиваем полученную информацию в сводные таблицы. Существует небольшая панель управления, которую используют, возможно, 5 человек для просмотра исторических / ежедневных сводок.
Какую информацию вы на самом деле пытаетесь найти?
Этот документ MSDN говорит, что размер таблицы «ограничен доступным хранилищем». У меня недостаточно опыта работы с SQL Server с большими таблицами, чтобы дать вам какие-либо рекомендации по производительности, но, не зная ничего о рассматриваемых записях или шаблонах чтения / записи, я не думаю, что кто-то еще может помочь.
По любым стандартам это много записей. Существует множество методов работы с большими объемами данных, но ... невозможно высказать свое мнение, не имея дополнительной информации о проблеме, которую пытается решить ваш друг.