我的公司正面临为新的数据库服务器购买 SQL Server 2012 Denali 还是 SQL Server 2008 R2 的决定。我正在寻找客观的理由来选择一个。
我们的要求:
目前,我知道以下原因:
SQL Server 2012 德纳利
SQL Server 2008 R2
我似乎找不到很多技术原因来偏爱其中一个。基本上,这归结为选择成功运行的成熟技术与可用的最新和最好的版本。
做出决定的客观原因是什么?
sql-server-2008 sql-server sql-server-2008-r2 sql-server-2012
可能的重复:
文件 - 在数据库中与否?
我想知道是否有任何充分的理由仍然在数据库中使用 blob 字段。几年前,我使用了一个包含一堆图像的数据库,该数据库非常慢,我看不出有什么好的理由将图像保存在数据库中,所以我将图像取出并存储了文件名反而。
这是明智之举吗?你代替我做什么?
我正在更新我的IDENTITY溢出检查脚本以考虑DECIMAL和NUMERIC IDENTITYcolumns。
作为检查的一部分,我计算每一IDENTITY列的数据类型范围的大小;我用它来计算该范围的百分比已用完。因为DECIMAL和NUMERIC 该范围的大小2 * 10^p - 2p是精度在哪里。
我用DECIMAL和NUMERIC IDENTITY列创建了一堆测试表,并尝试按如下方式计算它们的范围:
SELECT POWER(10.0, precision)
FROM sys.columns
WHERE
is_identity = 1
AND type_is_decimal_or_numeric
;
Run Code Online (Sandbox Code Playgroud)
这引发了以下错误:
Msg 8115, Level 16, State 6, Line 1
Arithmetic overflow error converting float to data type numeric.
Run Code Online (Sandbox Code Playgroud)
我将它缩小到IDENTITY类型的列DECIMAL(38, 0)(即具有最大精度),然后我POWER()直接尝试对该值进行计算。
以下所有查询
SELECT POWER(10.0, 38.0);
SELECT CONVERT(FLOAT, (POWER(10.0, 38.0)));
SELECT CAST(POWER(10.0, 38.0) …Run Code Online (Sandbox Code Playgroud)