SQL Server: какой тип данных для значений десятичной меры? - PullRequest
0 голосов
/ 16 января 2011

При создании витрин данных для целей отчетности (с использованием многомерного моделирования), какие типы данных следует использовать для значений десятичных показателей (для быстрых операций)? Числовой, десятичный или денежный?

Ответы [ 3 ]

1 голос
/ 16 января 2011

Числовой = Десятичный.Другое имя, тот же тип данных.Что касается денег, посмотрите этот интересный тест, проведенный Аароном Бертраном
https://sqlblog.org/2008/04/27/performance-storage-comparisons-money-vs-decimal

. Длинное и короткое - то, что десятичная дробь быстрее (незначительно), чем деньги, и более гибкая;деньги действительно предназначены только для валюты и привязаны к 4dp.Если вы моделируете и математика с плавающей запятой приемлема, рассмотрите математику с плавающей запятой, используя float / real, которая является родной для CPU (существуют регистры с плавающей запятой, но не десятичные).Плавания всегда быстрее десятичных.

0 голосов
/ 16 января 2011

Single / float, если вы хотите FAST.Как только вы попадаете в агрегацию и т. Д. - они быстрее обрабатываются как десятичные, так как они являются прямой ОС, поддерживаемой для математики.

Но тогда вам не нужно строить витрину для отчетности на сервере SQL, а в подсистеме SSAS.

0 голосов
/ 16 января 2011

Десятичное число выглядит хорошо, и вы можете определить необходимую точность.

...