我对 SQL Server 还很陌生,我在这个非常大的表上遇到了这个问题,这个表是以一种相当尴尬的方式实现的。这是设计外观的摘要图片
表 A
itemID uniqueidentifier PK
name vchar(32)
datecreated datetime
dateprocessed datetime
datereviewed datetime
approvalstatus int
workflowstatus int
表 B
fieldID uniqueidentifier PK
itemID uniqueidentifier FK(referencing table A's itemID)
name vchar(32)
value vchar(32)
在表 A 中,我们记录了一些交易记录,其中一些字段被填充到表 B。例如AccountNumber
,表 A 中的交易被填充到表 B 中,名称 = accountnumber 和 value = '[actual account number]' 以及所需的 itemID . 现在表 B 非常大,因此使用视图查询特定交易的帐号需要很长时间。
请注意,所有这些名称列以前都在表 A 中,但由于不断变化的业务需要添加更多列,导致团队以这种方式创建结构,以便添加新字段不需要向表 A 添加新列。
优化此表的最佳方法是什么。