我有在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
數據庫正在以這樣的速度增長的事實並不多說這個特定的表(或者當你談論正常化時你想到的表格)有多快會增長。當你考慮觸發器對性能的影響時,主要涉及到有問題的表。 –