我有在SQL表从被设计成一个iFix的SCADA系统保持报警数据如下:SQL触发VS其他选项性能
CREATE TABLE [dbo].[FIXALARMS](
[ALM_ID] [int] IDENTITY(1,1) NOT NULL,
[ALM_NATIVETIMEIN] [datetime] NOT NULL,
[ALM_PHYSLNODE] [char](8) NOT NULL,
[ALM_TAGNAME] [varchar](32) NOT NULL,
[ALM_VALUE] [varchar](16) NOT NULL,
[ALM_MSGTYPE] [varchar](8) NOT NULL,
[ALM_DESCR] [varchar](128) NOT NULL,
[ALM_ALMSTATUS] [varchar](4) NOT NULL,
[ALM_ALMPRIORITY] [varchar](8) NOT NULL,
[ALM_ALMAREA] [varchar](32) NOT NULL,
)
的SCADA指定哪些列必须命名和数据类型并没有提供其他选项将数据分成多个表。很多时候,我会被迫采用这种格式的信息,因为我的很多查询都在使用多个像和字符串比较数据,这些数据确实应该是id'd。
现在,我想对此表进行规范化并将其分成多个带有键控关系的表,以便我可以节省数据库空间,查询性能并增加一些灵活性。
这是使用数据库触发器最好的实现吗?数据库的增长速度约为40Mb /天(〜300k行),而我缺乏SQL经验让我担心在添加条目时会给服务器增加额外的负载。相反,我应该使用一个代理来清理表格吗?什么是我可能不知道的其他选项?
在我看问题之前,哪个SCADA系统是这样的?哪个行业......如果你不介意。 –
iFix日记工厂 – cmwarre
数据库正在以这样的速度增长的事实并不多说这个特定的表(或者当你谈论正常化时你想到的表格)有多快会增长。当你考虑触发器对性能的影响时,主要涉及到有问题的表。 –