SQL Server - Недостатки Производительности/Размера Пустых Столбцов

Использование списков лучше в этом случае, потому что мы не знаем с самого начала, сколько объектов у нас будет.

List roadCoordinates = new List();

...

roadCoordinates.Add(new Vector3(...));

Здесь учебник о списках.

10
задан gbn 30 March 2009 в 19:12
поделиться

6 ответов

У меня никогда не было проблемы с производительностью на нескольких пустых столбцах, даже на базах данных в 100 с размера концертов. Я предполагаю, что можно закончить с проблемами, если Вы выполняете индексы на этих полях и затем используете пустой указатель в запросе, но я не рассматривал это как проблему лично. С другой стороны я не создал таблицы базы данных, где каждое поле кроме 3 было nullable.

С другой стороны, я вижу проблему архитектуры, когда большинство данных является пустым. общей причиной является любой a) неправильно нормализованная база данных или b) попытка позволить пользователям подготавливать данные в журнальном столике вместо того, чтобы составить отдельные таблицы для "создавания" данных до согласия на базу данных.

Вам решать определить лучшую архитектуру Вашей базы данных.

8
ответ дан 3 December 2019 в 20:06
поделиться

Ну, ПУСТОЙ УКАЗАТЕЛЬ всегда является немного чудаком в базах данных. Я не думаю, что это оказывает слишком много влияния производительности в Вашем случае - но конечно, необходимо будет иметь дело со всеми Нулевыми значениями отдельно.

Каждый раз, когда возможно, я стремлюсь использовать значение по умолчанию вместо этого, поэтому если Вы имеете, например, некоторое Значение идентификатора типа INT, Вы могли бы использовать 0 или-1 как "никакой индикатор" подарка значения. Тем путем Вы можете избежать необходимости делать проверки на значение (поле <0) и проверяете на ПУСТОЙ УКАЗАТЕЛЬ отдельно (поле IS NULL или IS NOT NULL).

Marc

2
ответ дан 3 December 2019 в 20:06
поделиться

Проблемы я имел в прошлом соглашении с последствиями программирования наличия Нулевых значений. Например, проблемы с клиентами или проблемы с не в запросах, возвращая данные при отсутствии ожидания, потому что нулевое значение было там.

2
ответ дан 3 December 2019 в 20:06
поделиться

Существует только один способ быть уверенным. Разрешение и вставляет 100 миллионов записей, затем измеряют сквозной уровень.

0
ответ дан 3 December 2019 в 20:06
поделиться

То, что я делаю в этой ситуации, которая очень распространена, должно разделить данные на две таблицы:

  • Необходимые данные
  • Дополнительные данные

Например, я в настоящее время пишу общественный веб-сайт, и одна из таблиц, очевидно, будет пользовательской таблицей. Я записываю большой объем информации о пользователях и таким образом, я разделил данные, которые я собираю в две таблицы:

  • Пользователи
  • UserDetails

Таблица Users содержит основную информацию, в которой я буду нуждаться все время, такие как Имя пользователя, Имя и информация о Сессии.

Таблица UserDetails содержит дополнительную информацию, в которой я не нуждаюсь так же часто, такие как Profile Page, Адрес электронной почты, Пароль, Адрес Веб-сайта, Дата рождения и так далее.

Это известно как вертикальное разделение.

7
ответ дан 3 December 2019 в 20:06
поделиться

Не делайте таблицу с 75%-ми неиспользованными столбцами. Сделайте его со столбцами Вашей попыткой использовать все время и изучить использование чего-то как EAV для других столбцов или поместить их в другую таблицу.

-1
ответ дан 3 December 2019 в 20:06
поделиться
Другие вопросы по тегам:

Похожие вопросы: