Типы полей и скорострельность
Добавлено: 04 авг 2008, 02:16
Вопрос опытным (все что ниже ИМХО, прошу поправить, для этого и пишу сюда)
Насколько знаю "внутри проца" в 32-разрядных системах происходит выравнивание переменных до 32 бит (ИМХО). По крайней мере два одинаковых алгоритма, которые экономят память используя переменные ShortInt, Byte, Char и Boolean работают медленнее чем соответственно Integer,Integer,Integer и Integer. Причем это сам обнаруживал на практике - Integer быстрее, чем замена его на ShortInt или Word.
Собственно вопрос: использование в таблице FB/IB полей ShortInt, Char(1) вместо соответственно Integer, Integer приведет к экономии размера БД, но и уменьшению производительности - это верно? Имеются ввиду базы в десятки гигабайт, причем производительность приоритетна и если использование Integer вместо Char(1) приведет хотя бы к 1% увеличения производительности - для меня это серьезная причина не экономить дисковое пространство.
Насколько знаю "внутри проца" в 32-разрядных системах происходит выравнивание переменных до 32 бит (ИМХО). По крайней мере два одинаковых алгоритма, которые экономят память используя переменные ShortInt, Byte, Char и Boolean работают медленнее чем соответственно Integer,Integer,Integer и Integer. Причем это сам обнаруживал на практике - Integer быстрее, чем замена его на ShortInt или Word.
Собственно вопрос: использование в таблице FB/IB полей ShortInt, Char(1) вместо соответственно Integer, Integer приведет к экономии размера БД, но и уменьшению производительности - это верно? Имеются ввиду базы в десятки гигабайт, причем производительность приоритетна и если использование Integer вместо Char(1) приведет хотя бы к 1% увеличения производительности - для меня это серьезная причина не экономить дисковое пространство.