使用SQL Server 2005和SP4,我正在设计一个数据库表.
这是表DDL
CREATE TABLE CPSync4D.ProjectProfilerOption
(
ProjectProfilerOptionID INT IDENTITY(1,1) CONSTRAINT PK_ProjectProfilerOption_ProjectProfilerOptionID PRIMARY KEY
,ProjectID INT CONSTRAINT FK_ProjectProfilerOption_Project_ProjectID FOREIGN KEY(ProjectID) REFERENCES CPSync4D.Project(ProjectID) ON DELETE CASCADE
,ProfilerOptionID TINYINT CONSTRAINT FK_ProjectProfilerOption_ProfilerOption_ProfilerOptionID FOREIGN KEY(ProfilerOptionID) REFERENCES CPSync4D.ProfilerOption (ProfilerOptionID)
,ProfilerOptionValue sql_variant NOT NULL
)
Go
Run Code Online (Sandbox Code Playgroud)
profileroptionvalue列可以包含最多30个字符的字符串,整数或十进制值,例如值为"ProfilerValueType",或12.52或20等(不超过两位小数,整数值小于100)
我应该使用sql_variant还是varchar(30)......?我以前从未使用过sql_variant,也不确定在数据库设计方面没有使用任何含义.
使用sql_variant ...与.net代码的任何陷阱
使用带有SP2的SQL Server 2005标准版
我需要设计一个表格,我将存储一个文本文件(~200KB)以及文件名,描述和日期时间.
我们应该设计一个表,其中varchar(max)和varbinary(max)数据应该存储在一个单独的表中,还是LOB数据类型的列应该是主表的一部分?
根据这个线程 在单独的1-1表中使用varbinary字段有什么好处?
没有我在某种程度上同意的性能或运营效益,但我可以看到两个好处
任何建议,将不胜感激.
启用跟踪标志1118(作为服务启动参数)可以使TempDB减少与混合扩展区分配相关的争用,即使是SQL 2008/R2或SQL 2012也是如此.为什么在世界上它是开箱即用的.默认的SQL Server配置?