|
|
|
Sybase ASE 15 varchar VS numeric
|
|||
|---|---|---|---|
|
#18+
Добрый день! Есть таблица, в которой порядка 3,5 млн. записей. Таблица хранит кучу информации, но среди прочего некий номер, который представлен 19-ти символьным числом. В наследие досталось, что этот номер хранился в поле типа varchar(19). Появилось желание несколько оптимизировать работу этой БД. Добавил поле типа Numeric(19). Поля без индексов. Стал делать стандартные запросы с данными полями - агрегирование по полю, выборка в диапазоне и т.д. и вопреки своим ожиданиям столкнулся с тем, что быстродействие практически не различается... запросы по типу Код: plaintext 1. 2. 3. Код: plaintext 1. 2. 3. или, например, надо выделить префикс у номера 7917331 Код: plaintext 1. 2. 3. 4. Код: plaintext 1. 2. 3. 4. Мои ожидания на то, что работать с типом Numeric нежели c Varchar сервер должен быстрее напрасны? Может они (ожидания) вообще идут в разрез с философией работы СУБД? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.05.2010, 14:43 |
|
||
|
Sybase ASE 15 varchar VS numeric
|
|||
|---|---|---|---|
|
#18+
Mikle83 пишет: > Стал делать стандартные запросы с данными полями - агрегирование по > полю, выборка в диапазоне и т.д. и вопреки своим ожиданиям столкнулся с > тем, что быстродействие практически не различается... А с чего оно вдруг будет отличаться ? > Мои ожидания на то, что работать с типом Numeric нежели c Varchar сервер > должен быстрее напрасны? Да, были напрасны. Может они (ожидания) вообще идут в разрез с > философией работы СУБД? Идут. Типы полей надо выбирать в зависимости от того, какие данные хранятся в поле и какие операции с ними ты будешь делать. Быстродействие тут ни при чём. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.05.2010, 15:48 |
|
||
|
Sybase ASE 15 varchar VS numeric
|
|||
|---|---|---|---|
|
#18+
Как минимум мои ожидания были основаны на том, что серверу "легче" будет оперировать с типом данных Numeric, так как вместо 19 байт (если пользовать varchar) тут для хранения инфы пользуется 8 байт. Подразумевается также джойн по данному полю с другой таблицей - есть смысл пробовать - джойн-то по numeric должен поидее сработать быстрее нежели по varchar? Или опять напрасные ожидания? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.05.2010, 16:04 |
|
||
|
Sybase ASE 15 varchar VS numeric
|
|||
|---|---|---|---|
|
#18+
Mikle83 пишет: > Подразумевается также джойн по данному полю с другой таблицей - есть > смысл пробовать - джойн-то по numeric должен поидее сработать быстрее > нежели по varchar? С чего ? Или опять напрасные ожидания? Напрасные. Я только тебя успокоить хочу. С логикой у тебя в порядке всё. Да только строки и числа в памяти обрабатываются, а записи читаются с диска. А время чтения с диска в 10000-1000000 раз больше любой машинной операции в памяти. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.05.2010, 17:16 |
|
||
|
Sybase ASE 15 varchar VS numeric
|
|||
|---|---|---|---|
|
#18+
Mikle83, C логикой действительно все в порядке!! Если построить по этим полям индекс, то по numeric индекс будет меньше. Больше значений поместиться на страницу, следовательно, меньше страниц индекса читать серверу(IO меньше). А так, без индекса будет TableScan. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.05.2010, 19:10 |
|
||
|
|

start [/forum/topic.php?fid=55&msg=36650760&tid=2010645]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
168ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
49ms |
get tp. blocked users: |
2ms |
| others: | 233ms |
| total: | 497ms |

| 0 / 0 |

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