我应该拆分我的SQL Server表吗?

时间:2018-01-14 10:05:11

标签: sql sql-server azure tsql

我有一个表,其中大多数列经常被读取(SELECTed)并且几乎从不更新。

我现在需要在同一个表中添加一组列(它们是同一实体的属性),只会读取这些列,并且经常更新

如果我将新列添加到同一个表中,UPDATE会干扰SELECT吗?

我是否应该创建一个与上一个表有一对一关系的新表?

如果重要,我正在使用Azure SQL Server。

1 个答案:

答案 0 :(得分:0)

在我看来,将事物拆分成单独的表永远不是一个坏主意。但是,在这种情况下它并不重要。 covariate_2 <- factor( c(rep('A',4) , rep('B',4) )) > data.frame( covariate_2 , melted_data ) covariate_2 Var1 Var2 value 1 A R1 C1 1.2261395 2 A R2 C1 -1.2326215 3 A R1 C2 -1.0604743 4 A R2 C2 -0.5567295 5 B R1 C3 -0.1803689 6 B R2 C3 -0.4146919 7 B R1 C4 0.3852505 8 B R2 C4 0.2433812 语句不会干扰UPDATE,除非SELECT语句选择要更新的列(听起来像是这样,因为这些是您添加的新列,不会除非select语句是SELECT)。换句话说,如果您的SELECT语句如下所示:

SELECT *

在这种情况下,它可能取决于运行UPDATE语句的时间,因为如果我们假设新列默认为null并且UPDATE语句更新第一行,则SELECT distinct * FROM my.Table where [NewColumn] is not NULL 语句在它之前运行更新下一行时,如果要选择2行,最终只能选择1行。

根据你对表格的描述,听起来我觉得你最好把事情分开,即使这些陈述不太可能互相干扰。