Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Поясните про размер таблиц / 16 сообщений из 16, страница 1 из 1
16.01.2018, 12:25
    #39584982
Cammomile
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поясните про размер таблиц
Есть две таблицы, в обе вставлено 5 000 000 рандомных гуидов.
Код: sql
1.
2.
CREATE TABLE dbo.VARCHAR_GUIDS  ( ID varchar(36) primary key )  
CREATE TABLE dbo.VARCHAR_GUIDS_2 ( ID varchar(36) primary key, TrueGuid   AS  (cast(ID as uniqueidentifier)) )  



На диске они занимают одинаково мест вплоть до килобайта

Код: sql
1.
2.
3.
                                  Кб            Мб       
VARCHAR_GUIDS	dbo	5000000   245544	239.79 
VARCHAR_GUIDS_2	dbo	5000000  245544	  239.79 



Почему так выходит?
...
Рейтинг: 0 / 0
16.01.2018, 12:27
    #39584984
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поясните про размер таблиц
так TrueGuid вычисляемое
...
Рейтинг: 0 / 0
16.01.2018, 12:28
    #39584986
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поясните про размер таблиц
вот если б PERSISTED было, то тогда отличия бы были
...
Рейтинг: 0 / 0
16.01.2018, 12:32
    #39584994
TaPaK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поясните про размер таблиц
Cammomile,

A computed column is a virtual column that is not physically stored in the table, unless the column is marked PERSISTED.
...
Рейтинг: 0 / 0
16.01.2018, 12:37
    #39585001
Cammomile
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поясните про размер таблиц
Ох, позорище мне.
Правда я ни разу не пользовался вычисляемыми столбцами, вообще!
А как работает индекс на вычисляемом поле? Автоматически превращает его в "персистед"?
...
Рейтинг: 0 / 0
16.01.2018, 12:38
    #39585002
Cammomile
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поясните про размер таблиц
Судя по всему, так и есть. С некластерным индексом места стало в два раза больше. Ну вот и разобрались.
...
Рейтинг: 0 / 0
16.01.2018, 12:44
    #39585011
TaPaK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поясните про размер таблиц
Cammomile,

авторАвтоматически превращает его в "персистед"? нет, сам индекс место занимает
...
Рейтинг: 0 / 0
16.01.2018, 12:46
    #39585014
Cammomile
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поясните про размер таблиц
Но индекс же должен иметь какие-то там значения физически, значит эта колонка становится "овеществленной". Хоть и внутри индекса.
...
Рейтинг: 0 / 0
16.01.2018, 12:50
    #39585023
aleksrov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поясните про размер таблиц
CammomileНо индекс же должен иметь какие-то там значения физически, значит эта колонка становится "овеществленной". Хоть и внутри индекса.

В таком контексте да. Если у вас вычисляемое поле 4 последнии цифры паспорта и оно не persisted, то в некласт индексе будут эти 4 цифры.
...
Рейтинг: 0 / 0
16.01.2018, 13:00
    #39585035
TaPaK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поясните про размер таблиц
aleksrovCammomileНо индекс же должен иметь какие-то там значения физически, значит эта колонка становится "овеществленной". Хоть и внутри индекса.

В таком контексте да. Если у вас вычисляемое поле 4 последнии цифры паспорта и оно не persisted, то в некласт индексе будут эти 4 цифры.
а если оно persisted, то будут буквы?
...
Рейтинг: 0 / 0
16.01.2018, 13:03
    #39585041
aleksrov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поясните про размер таблиц
TaPaK,

Согласен, формулировка корявая, и если persisted тоже.
...
Рейтинг: 0 / 0
16.01.2018, 14:22
    #39585121
04cf9f9576a6f15
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поясните про размер таблиц
CammomileОх, позорище мне.
Правда я ни разу не пользовался вычисляемыми столбцами, вообще!
А как работает индекс на вычисляемом поле? Автоматически превращает его в "персистед"?Насколько я помню, нельзя построить индекс по вычисляемому полю, если явно не объявить его PERSISTED.

#Хэш=
...
Рейтинг: 0 / 0
16.01.2018, 14:25
    #39585124
TaPaK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поясните про размер таблиц
04cf9f9576a6f15CammomileОх, позорище мне.
Правда я ни разу не пользовался вычисляемыми столбцами, вообще!
А как работает индекс на вычисляемом поле? Автоматически превращает его в "персистед"?Насколько я помню, нельзя построить индекс по вычисляемому полю, если явно не объявить его PERSISTED.

#Хэш=
вы неправильно помните
...
Рейтинг: 0 / 0
16.01.2018, 14:34
    #39585132
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поясните про размер таблиц
04cf9f9576a6f15CammomileОх, позорище мне.
Правда я ни разу не пользовался вычисляемыми столбцами, вообще!
А как работает индекс на вычисляемом поле? Автоматически превращает его в "персистед"?Насколько я помню, нельзя построить индекс по вычисляемому полю, если явно не объявить его PERSISTED.

#Хэш=Нет такого требования: тынц .
...
Рейтинг: 0 / 0
16.01.2018, 14:39
    #39585139
TaPaK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поясните про размер таблиц
Cammomile,

авторНо индекс же должен иметь какие-то там значения физически, значит эта колонка становится "овеществленной". Хоть и внутри индекса.
в общем ответ уже есть, в индексе вы матереализуете значения, при этом индекс будет изменяться когда будут затронуты колонки участвующие в расчёте
...
Рейтинг: 0 / 0
16.01.2018, 18:26
    #39585355
04cf9f9576a6f15
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поясните про размер таблиц
skyANA04cf9f9576a6f15пропущено...
Насколько я помню, нельзя построить индекс по вычисляемому полю, если явно не объявить его PERSISTED.

#Хэш=Нет такого требования: тынц .Благодарю. Я тогда мутил работу с регулярными выражениями на CLR, вот в памяти и отложилось, что это обязательно. Для более простых случаев действительно можно без этого.
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Поясните про размер таблиц / 16 сообщений из 16, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]