Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM Новый топик    Ответить
 Как программно изменить тип данных во всех таблицах?  [new]
CheeGer
Member

Откуда:
Сообщений: 20
Решил заменить тип одного столбца с datetime на datetime2(2) .. если я правильно посчитал то его размер уменьшится на четверть и т.к. в базе у меня сотни млн строк, я должен сэкономить около гига.. вот только проблема в том что в базе сотни таблиц и как для всех них это проделать я не представляю..что посоветуете?
5 авг 10, 13:47    [9215347]     Ответить | Цитировать Сообщить модератору
 Re: Как программно изменить тип данных во всех таблицах?  [new]
МСУ
Member [заблокирован]

Откуда: http://codearticles.ru
Сообщений: 31089
datetime: 8 байт
datetime2: 6 байт для точности меньше 3 цифр
Итого: на каждые 100 млн. строк для одной колонки datetime2 Вы сэкономите 200 Мб.
Размер базы огласите, и будет видно, подавать ли пирог к торжеству.
5 авг 10, 13:58    [9215508]     Ответить | Цитировать Сообщить модератору
 Re: Как программно изменить тип данных во всех таблицах?  [new]
Курдль
Member

Откуда: Мск
Сообщений: 1143
CheeGer,

"До чего довел страну этот фигляр Пэжэ!!!" (с)
Программисты опять начали считать байты в БД!

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

Экономия в 1ГБ смехотворна при тенденциях в десятки ТБ...
Купите диск - он дешевле обойдется.
5 авг 10, 17:17    [9217781]     Ответить | Цитировать Сообщить модератору
 Re: Как программно изменить тип данных во всех таблицах?  [new]
МСУ
Member [заблокирован]

Откуда: http://codearticles.ru
Сообщений: 31089
Курдль
Экономия в 1ГБ смехотворна при тенденциях в десятки ТБ...

+1 ТБ :)
5 авг 10, 17:40    [9218080]     Ответить | Цитировать Сообщить модератору
 Re: Как программно изменить тип данных во всех таблицах?  [new]
CheeGer
Member

Откуда:
Сообщений: 20
Распихивать базу по разным дискам для меня не меньший геморрой.. и вообще если каждый раз вместо оптимизации покупать диск, в серверной скоро негде будет развернуться..
По мне дк лучше оптимизировать её сейчас, пока она не разрослась до десятков ТБ...
6 авг 10, 00:03    [9219903]     Ответить | Цитировать Сообщить модератору
 Re: Как программно изменить тип данных во всех таблицах?  [new]
bured
Member

Откуда:
Сообщений: 24292
CheeGer,

создать новое поле, скопировать туда данные из старого, старое удалить, новое переименовать в старое название.

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

Так пойдёт?
6 авг 10, 00:20    [9219944]     Ответить | Цитировать Сообщить модератору
 Re: Как программно изменить тип данных во всех таблицах?  [new]
Курдль
Member

Откуда: Мск
Сообщений: 1143
CheeGer,

Если где-то в предметной области потребуется еще одно поле, страшно сказать, типа Money, все Ваши труды пойдут насмарку :( Обидно будет до жути!

Но меня пугает тенденция! Обычно стоны об оптимизации доносятся от DB-админов, а разработчики иногда снисходят до этого процесса. Но если сами разработчики начали задумываться... Это ж до чего ж мы докатиться можем?!!
Неровен час, кто-то решит, что иерархия из 3-х сущностей типа
юр.лицо -> Субъект <- физ.лицо "напрягает БД и железяки" и ее следует упразднить до одной сущности "Клиент", и пусть катится куда подальше 3нф!
6 авг 10, 09:22    [9220585]     Ответить | Цитировать Сообщить модератору
 Re: Как программно изменить тип данных во всех таблицах?  [new]
МСУ
Member [заблокирован]

Откуда: http://codearticles.ru
Сообщений: 31089
CheeGer
вместо оптимизации покупать диск

Уважаемый, Вы называете "оптимизацией" замену datetime на datetime2? Не смешите мои носки
Оптимизируйте, лучше, запросы на основе планов, а фигнёй позаниматься всегда успеете.
6 авг 10, 09:25    [9220606]     Ответить | Цитировать Сообщить модератору
Все форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM Ответить