У меня есть большая база данных SQL, работающая на SQL Server. Я должен выполнять арифметические операции с большими объемами данных, и я хочу улучшить производительность. В настоящее время я храню суммы, используя тип данных FLOAT, и я читал о числовых типах данных, чтобы узнать, улучшит ли другой тип данных.Самый эффективный тип данных для арифметических операций
Я прочитал this question это рекомендация используя DECIMAL() если возможно. Я применил DECIMAL (18, 6), так как мне нужно 6 цифр после десятичной точки. Однако я заметил небольшое снижение скорости запросов.
Есть ли более быстрый тип данных, который я могу использовать вместо float? Как улучшить арифметическую производительность в моей БД?
Я использую SQL Server. – lisovaccaro
Поплавок, вероятно, не очень хороший выбор, если вы заинтересованы в точности, потому что float является приблизительным типом данных, и не все значения будут работать точно. Десятичное число (18,6) - довольно большое десятичное число. Вам они действительно нужны? Это позволяет использовать 12 значащих цифр. Кроме того, тип данных не является ни быстрее, ни медленнее, чем другой. Между ними нет скорости. Это ваш запрос, структура таблицы и индексирование, что приводит к различиям в производительности. Можете ли вы поделиться своим запросом, структурой таблицы и индексами? –
Если вы можете использовать 'decimal (9,6)', вы уменьшите размер своего хранилища с 9 до 5 байтов. – SqlZim