|
|
|
Неколько вопросов по типам данных.
|
|||
|---|---|---|---|
|
#18+
Сравнил на примере. Создал таблицу с 10 млн данных. В таком формате: КодПодразделенияКодТовараКол-во100100100100101501001027510110050......... И есть справочник подразделений в формате: КодПодразделенияЮридическоеЛицо100 Компания1101Копания1102Компания1103Компания2...... И создал селект: Код: sql 1. 2. 3. 4. Присваивал КодПодразделения следующие форматы в обоих таблицах: 1. SmallInt 2. Int 3. Nvarchar (100) В итого получил по мегабайтам таблица 1: 1. 441,3 Мб 2. 463,5 Мб 3. 521,1 Мб По скорости выполнения Selecta 1. 5 сек 2. 5 сек 3. 13 сек Воспользуюсь советом, которые многие давали. Буду использовать тот формат данных, который больше всего подходит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2014, 06:13 |
|
||
|
Неколько вопросов по типам данных.
|
|||
|---|---|---|---|
|
#18+
Индексы были на таблицах? Если да, то каковы размеры индексов в каждом случае? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2014, 09:22 |
|
||
|
Неколько вопросов по типам данных.
|
|||
|---|---|---|---|
|
#18+
Pulsar_pIvan DurakUniqueidentifier не монотонно возрастающий - это сильно плохо для индексов. А для кластреного вообще убийственно. Почему? Просто я не знаю, что мне лучше использовать для суррогатного ключа: Uniqueidentifier или SEQUENCE? что почему???? почему плохо? - сплит страниц постоянный у индекса. да вот и пример: http://toster.ru/q/22959 авторВообще говоря использовать uniqueidentifier'а в качестве Primary Key плохая затея. Говорю это из своего опыта. Когда проект только начинался мы бездумно сделали все PK c типом uniqueidentifier, и через год, когда количество записей стало исчисляться миллионами, база данных начал непонятно тупить. Тогда мы узнали что такое фрагментация индексов. Фрагментация кластерного индекса очень сильно замедляет вставку. Говоря о выборке, банальные join'ы 100 на 100 записей стали медленными, потому что серверу надо делать множество сиков на диске для перехода к нужной записи. И не говорите о плохих индексах, в данном случае мы выжали всё что могли, и именно сики стали головной болью. Перенос огромной базы на SSD тоже на самая безопасная операция. Так уже больше года мы потихоньку меняем старые Guid'ы на int/bigint и с болью вспоминаем то неосмотрительное решение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2014, 10:54 |
|
||
|
Неколько вопросов по типам данных.
|
|||
|---|---|---|---|
|
#18+
Ivan Durak, Спасибо за разъяснение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2014, 11:23 |
|
||
|
Неколько вопросов по типам данных.
|
|||
|---|---|---|---|
|
#18+
SERG1257Ivan Durak Меньше места занимает - меньше чтений, уже плюс Добавлю меньше места занимает в памяти, меньше места занимает в логе и т.д. Не согласен. В отрыве от алгоритма обработки - некорректно. Зачем тогда индексы создавать? По вашей логике, получается, что есть таблица с данными, без индексов она будет меньше места занимать на диске. Ошибка в переходе от "меньше места занимает" к выводу "меньше чтений". Количество чтений зависит от алгоритма обработки тоже. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2014, 13:34 |
|
||
|
Неколько вопросов по типам данных.
|
|||
|---|---|---|---|
|
#18+
АнатоЛой Не согласен. В отрыве от алгоритма обработки - некорректно. Зачем тогда индексы создавать? По вашей логике, получается, что есть таблица с данными, без индексов она будет меньше места занимать на диске.Я имел ввиду что каждый лишний байт на странице данных занимает место в буферном кэше, индексах, логе, бакапах, тестовых клонах, их бакапов и так далее. Насколько это существенно, как и алгоритмы обработки это совсем другая история. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2014, 17:46 |
|
||
|
Неколько вопросов по типам данных.
|
|||
|---|---|---|---|
|
#18+
SERG1257АнатоЛой Не согласен. В отрыве от алгоритма обработки - некорректно. Зачем тогда индексы создавать? По вашей логике, получается, что есть таблица с данными, без индексов она будет меньше места занимать на диске.Я имел ввиду что каждый лишний байт на странице данных занимает место в буферном кэше, индексах, логе, бакапах, тестовых клонах, их бакапов и так далее. Насколько это существенно, как и алгоритмы обработки это совсем другая история. Вы зацикливаете определение само на себя :). "Лишний" этот байт или нет - какое-то неявное ваше умозаключение. "Лишний" ли этот байт можно определить только тогда, когда можно сказать, что без этого байта система будет работать (хранить и обрабатывать ) данные не хуже (в том числе - не медленнее)... Опять возвращаемся к алгоритмам обработки :) (и критериям: что такое "хуже" в конкретном случае). Пример: тип данных char(3) сэкономит 1 байт при хранении на каждой записи, но при этом сожрёт сколько-то процессорного время, если в процессе обработки понадобится часто приводить значения к типу int (такой тип данных у ключа в связанной таблице, сортировать нужно по числовым значениям и т.п.). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2014, 18:44 |
|
||
|
Неколько вопросов по типам данных.
|
|||
|---|---|---|---|
|
#18+
ларёчники, на 1ТБ данных на символьных ключах перерасход дорогостоящего дискового пространства будет нешуточный, тормоза поимеете. Срочно предупреждать бизнес, о том что непрофессионалы закладывают мину, которая года через 2 рванет при бурном росте бизнеса, в то время и без того недетские задачи придется решать. Читать буквари! Кимбаллом уже 1000 раз разжевывалось ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.04.2014, 22:00 |
|
||
|
Неколько вопросов по типам данных.
|
|||
|---|---|---|---|
|
#18+
Ищите, читайте статьи и главы про data sizing ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.04.2014, 22:02 |
|
||
|
Неколько вопросов по типам данных.
|
|||
|---|---|---|---|
|
#18+
NetObserverPS Сейчас работаю с базой живущей с 2009 года. Тогда разработчики тоже "экономили", некоторые справочники(их ID) имеют размер TyniInt. И уже переросли свой размер. Могу сказать, что это знатный гемморой - во всех SP искать поле и менять тип. Потому надо в SP проще написать Код: plsql 1. и не заморачиваться с изменением типов у полей таблиц ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2014, 08:43 |
|
||
|
Неколько вопросов по типам данных.
|
|||
|---|---|---|---|
|
#18+
авторгемморой - во всех SP искать поле и менять тип. Менять надо только тип у параметров и зависимых переменных, не ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2014, 10:28 |
|
||
|
Неколько вопросов по типам данных.
|
|||
|---|---|---|---|
|
#18+
Ivan Durakпочему плохо? - сплит страниц постоянный у индекса. да вот и пример: http://toster.ru/q/22959 Есть и обратная сторона медали - если ключи формируются из монотонно возрастающей последовательности то, при высокой конкурентности вставок, происходит борьба за модификацию одной и той же страницы индекса. Так что выбирать оптимальный способ формирования ключей надо исходя из задачи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2014, 16:54 |
|
||
|
Неколько вопросов по типам данных.
|
|||
|---|---|---|---|
|
#18+
Mr.FontaineПотому надо в SP проще написать Код: plsql 1. и не заморачиваться с изменением типов у полей таблиц Спасибо, я уже понял что Вы ораклист только моя база на MS SQL LSVМенять надо только тип у параметров и зависимых переменных, не ? Да, но если таких SP\триггеров с полсотни - вспоминаешь экономного разработчика душевными словами ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2014, 00:47 |
|
||
|
Неколько вопросов по типам данных.
|
|||
|---|---|---|---|
|
#18+
On 25.04.2014 01:47, NetObserver wrote: > Да, но если таких SP\триггеров с полсотни - вспоминаешь экономного > разработчика душевными словами В MSSQL есть домены, их и надо было использовать. Хотя, переопределять домен -- то ещё удовольствие, но хотя бы не надо текст процедур править. Достаточно удалить все использующие домен процедуры, таблицы, view, потом поменять домен, потом пересоздать все удалённые объекты. И тем не менее, неправильный выбор домена -- очень тяжкая ошибка проектирования, потом её очень трудно исправлять, с этим нельзя не согласится. И в Oracle тоже. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2014, 17:51 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=38610325&tid=1540909]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
171ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
53ms |
get tp. blocked users: |
2ms |
| others: | 14ms |
| total: | 284ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...