2016-05-27 5 views
0

Я аналитик отчетов и «новичок» для SQL Server. У меня есть вид, соединяющий 2 таблицы со 100 столбцами - 50: NVARCHAR(255) Null по умолчанию, все остальные - int или float.SQL Server 2012 высокая производительность столбцов таблицы

Таблица может достигать 1 миллиона строк, а производительность является ужасной при извлечении данных с использованием SQL Server, занимает час и исчерпала память. Большая часть моего NVARCHAR(255) фактически ограничена 10 & 50 байт в исходной таблице, поэтому 255 не требуется. Исключая любые проблемы с объединением SQL, есть ли преимущество в производительности для уменьшения размеров столбцов 50 до их истинных пределов?

Я видел различные данные на форуме для этого: некоторые статьи указывают, что я получаю выгоду от производительности по размеру страницы, уменьшая это, поэтому данные «IN-ROW».

С другой стороны, я прочитал, где NVARCHAR(255) извлекает фактический размер данных 10 или 50, что не может вызывать проблемы с производительностью.

Помогите?

Спасибо всем!

Rebelle

+0

Добро пожаловать в SO! Не связанное, но предложение: это звучит как * много * данных, которые должны содержаться в стольких таблицах, - рассмотрите [нормализацию базы данных] (https://en.wikipedia.org/wiki/Database_normalization), если/когда у вас есть время – Conduit

ответ

0

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

Ниже приведена подробная информация по этой теме. Я бы подвел итог следующим образом. Некоторые части SQL используют максимально возможный размер при определении необходимой памяти.

is-there-an-advantage-to-varchar500-over-varchar8000

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