2013-02-14 2 views
0

Я работаю над своей программой, которая работает с SQL Server.Хранить много строк в серверной проблеме Sql?

для хранения данных в таблице базы данных. Какой из приведенных ниже подходов является правильным?

  1. магазин Многие Ряды Только в одной таблице (10 миллионов Record)

  2. магазин Меньшее Ряды в несколько таблиц (+500000 Record) (Exp: для каждого года создать один стол)

+1

Использование 1. - 10 миллионов строк не считаются «многими» в настоящее время. –

+0

множество строк таблицы Причины увеличивают время на запрос «select»? –

+0

Это зависит от того, сколько строк вы получите с помощью 'select'. Чем больше вы выбираете, тем дольше это требуется. Но почему вы всегда выбираете все строки? –

ответ

0

Ну, это зависит! Что вы собираетесь делать с данными? Если вы часто запрашиваете эти данные, это может быть лучшим решением для разделения данных в (например) таблицах года. Таким образом, вы получите лучшую производительность, так как вам придется запрашивать меньшие таблицы. Но с другой стороны. С большим столом и с хорошим запросом вы можете даже не видеть проблему с производительностью. Если вам нужно только сохранить эти данные, было бы лучше просто использовать 1 таблицу.

BTW Для загрузки этих данных в базу данных вы можете использовать BCP (bulkcopy), что является быстрым способом вставки большого количества строк.

1

Это зависит от того, как часто вы получаете доступ к данным. Если вы не используете старые записи, вы можете архивировать эти записи. Разделение таблиц нежелательно, так как оно может запутать вас при извлечении данных.

1

Я бы сказал, чтобы сохранить все данные в одной таблице, но реализовать табличный раздел для более старых данных. Частизация данных повысит производительность запросов.

Вот некоторые ссылки:

http://www.mssqltips.com/sqlservertip/1914/sql-server-database-partitioning-myths-and-truths/

http://msdn.microsoft.com/en-us/library/ms188730.aspx

http://blog.sqlauthority.com/2008/01/25/sql-server-2005-database-table-partitioning-tutorial-how-to-horizontal-partition-database-table/

Пожалуйста, обратите внимание, что эта таблица функциональности partioning доступна только в Enterprise Edition.

Смежные вопросы