Наличие большего количества атрибутов в таблице уменьшают производительность?

До сих пор я - довольно удобная работа с приложением Windows C#. Я собираюсь сместиться на Asp.net для разработки веб-сайта. Требование сделало меня для помещения приблизительно 50 столбцов в единственную таблицу. Я знаю это понятие повреждения его в маленькие таблицы с помощью нормальных форм.

Я пытался гуглить, но вмятина добирается, много заканчивается. Я должен знать, уменьшила ли моя таблица с 50 атрибутами производительность моего веб-приложения? Может кто-то предлагать меня об этом.

6
задан VMAtm 9 September 2011 в 09:58
поделиться

8 ответов

Что ж, если вы принесете их по всему обратно, вы, безусловно, имеете затраты на сетевые (передача данных между БД и вашим кодом .NET) и затратами на материализацию (создание объекта / DataTable представление в вашем DAL), так что тогда вы Обязательно имел бы некоторых затрат. И любой способ учитывать размер страницы базы данных.

Но, возможно, ключевая вещь: Вам нужны все данные? Если это так, есть только так много, что вы можете сделать. Использование нескольких таблиц и вводящих соединений также .

В большинстве случаев, хотя и , особенно ASP.NET, Наиболее важные фигурки - это такие вещи, как:

  • , какие тому объемные данные на самом деле идут к приложению клиента? (Не могли бы вы использовать пейджинг / ajax /. etc?)
  • Какие данные хранятся в сеансе?
  • Сколько круглых поездок вы делаете между клиентом и сервером App-Server?

Поскольку пропускная способность и задержка между вашим приложением -Сервера и клиент имеет тенденцию , чтобы быть точкой сжима. Измерить вещи; Убедитесь, что вы нацеливаетесь на правильно .

Также ASP.NET имеет репутацию, чтобы не стесняться о хранении большего количества, чем вы ожидаете, что в таких вещах зрения; Следите за этим или перейдите на более легкую модель, такую ​​как ASP.NET MVC.

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

Одной из таблиц, 50 столбцов?

Одной из точек нормализ является избегать вставки, удаления, обновления аномалий

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

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

Если вы говорите о таблице БД с множеством полей (или столбцов), 50 не совсем необычно.

Однако вы должны поддерживать нормированную конструкцию DB, и если дизайн нормализуется 50 полей, иди с этим.

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

, а не думать о том, сколько столбцов, я предлагаю вам подумать о типах данных колонн.

D-нормализация также популярна. Выберите свою нормализацию, опираясь на логику приложения. (Подумайте о присоединениях тщательно)

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

Все сводится к тому, что вы будете использовать вас. В конце дня это количество данных, которые вы получите от / писать в таблицу. Если большинство ваших запросов извлеките из / пишут большинству столбцов, да нет столбцов не повлияет.

Время поворота вашего запроса будет напрямую пропорционально количеству данных, которые он читает / пишет. Чем больше данных, тем дольше это взять. Большое количество столбцов может означать большое количество данных (но не всегда).

Сказав, что 50 столбцов не является большим числом. Я столкнулся со столами с более чем 300 столбцами. Но тогда это также зависит от использования СУБД.

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

«Делайте самую простую вещь, которая может работать». (Уорд Каннингем).

Если столбцы все представляют отдельные элементы данных, вы следуете за хорошими правилами нормализации, и у вас нет групп повторяющихся элементов, то количество столбцов в таблице действительно не имеет большого значения. Если вы хотите, чтобы вы могли начать потеть по размеру строк против размера блока данных, сколько места вы можете или не будете тратить, и т. Д., AD Naauseum, но в моем опыте лучше сохранить ваши данные вместе в одной таблице, если нет некоторой подавляющей функциональной причины, по которой она должна быть разбита на несколько таблиц. Я непременно пришлось работать с базами данных, где кто-то предварительно предположил, что слишком много полей в одной таблице было плохой вещью, поэтому они сломали, что было логически одной таблицей в несколько таблиц с меньшим количеством полей. Это сделано для кошмара при попытке сделать обновления.

Удачи.

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

В зависимости от того, что вы действительно имеете в виду, это может или не может быть проблемой.

Если 50 столбцов относительно небольшие по размеру, и каждый содержит разный тип данных (телефон, CIT, состояние, имя и т. Д.), Вы, вероятно, в порядке.

Если они такие вещи, как телефон1, телефон2 и т. Д., Вам нужен связанный стол, поскольку это сложно поддерживать и правильно запросить. Например, предположим, что у вас есть пятьдесят полей номера телефона, и день наступает, когда вам нужно 51, то вам нужно изменить структуру таблицы и все связанные запросы (вы не используете выбору * в производстве?) Предположим, вы хотите Чтобы узнать, у кого есть телефон 111-1111-11111, вы должны присоединиться к (или союз) в таблицу 50 раз, чтобы получить ответ. Это где это может повредить производительность.

Третий случай - это то, где 50 столбцов являются каждаями разными вещами, но все вместе будут большой записью из-за размера полей. Поймите, что базы данных позволят вам создать StrucuTre, которая больше, чем максимальное количество байтов, которую может содержать запись, он просто не позволит вам поставить больше, чем количество байтов в записи. Плюс более длинные записи, как правило, создают проблемы в том, как данные хранятся на диске и могут привести к более медленному поискому. В этом случае лучше всего создавать одну или несколько связанных таблиц, которые будут иметь отношение к одному на один к основной таблице.

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

Это зависит от того, что и как получены данные. Конечно, выбор * скажет на производительности. Вам нужно будет выбрать необходимые столбцы по мере необходимости и попробуйте использовать предложение, где. Это один из способов сделать из стола с большим количеством столбцов и данных.

0
ответ дан 17 December 2019 в 20:32
поделиться
Другие вопросы по тегам:

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