SQL Server 在安全更新后关闭。
我需要安装一个可区分语言的累积服务包。
我正在下载西班牙语和英语版本,我确定它会是其中一个,但最好在服务器关闭时确定它是哪个。
SQL Server 在安全更新后关闭。
我需要安装一个可区分语言的累积服务包。
我正在下载西班牙语和英语版本,我确定它会是其中一个,但最好在服务器关闭时确定它是哪个。
我们正在运行 SQL Server 2012 标准版。
需要更改具有 +100M 行的表中的列名。
这张桌子在任何时候都被大量使用。
我现在不能说有问题的列是否是索引的一部分(如果是,我应该期待不同的行为吗?)
运行时我应该期望的性能影响是什么:
EXEC sp_rename 'myTable.oldColumnName', 'newColumnName','COLUMN'
编辑:此列是为将来的需要而创建的,我们知道它没有用于系统的任何部分。它只有空值。我现在离线,不确定它是否包含在索引中(错误地)
编辑 2:此表上的大多数事务都有 with(nolock) 提示。您是否认为在隔离杠杆读取未提交时运行 sp_rename 是要走的路?
我们知道索引改进select
了语句,同时,索引对每个update/insert/delete
语句都有维护成本。
我不知道如何衡量/评估这个成本。
一些上下文:有十几个关键表涉及多个插入/更新,行数在 20M 到 80M 之间。平均每秒 1400 个事务。
在过去的几个月里,添加了几个索引来优化系统不同部分的性能。这工作正常,但现在系统的另一部分出现了一些退化。
我有这个理论,但我不知道如何验证或反驳它。
编辑:我读过其他一些帖子,但大多数都是面向 SQL Server 的,我正在运行SYBASE ASE 15.7
,如标记
我找到了一张看起来像这样的表:
CREATE TABLE [dbo].Table1 (
id INT primary key IDENTITY (1, 1),
[idUser] INT NOT NULL ,
[Amount] INT NOT NULL ,
[Attempts] INT NOT NULL ,
[date] [datetime] NOT NULL ,
[SUM_Amount] INT NOT NULL
) ON [PRIMARY]
此表由作业创建并填充特定时期的聚合数据。
特点:
该表将保持原样,没有更新或删除或插入操作。只是这种类型的查询:
select top (@n) * from table1
order by [SUM_Amount] desc, [Attempts] desc
select top (@n) * from table1
where [SUM_Amount] >=@m order by [SUM_Amount] asc
我认为更改为这样的聚集索引会提高性能:
CREATE TABLE [dbo].Table2 (
id INT IDENTITY (1, 1),
[idUser] INT NOT NULL ,
[Amount] INT NOT NULL ,
[Attempts] INT NOT NULL ,
[date] [datetime] NOT NULL ,
[SUM_Amount] INT NOT NULL
CONSTRAINT [PK_Nueva]
PRIMARY KEY CLUSTERED ([SUM_Amount] desc, [Attempts] desc, id asc)
) ON [PRIMARY]
我读到使用非唯一聚集索引会添加一个 4 字节的隐藏列(http://msdn.microsoft.com/en-us/library/ms190639(v=sql.90).aspx),所以我决定添加集群索引的身份(不确定这是否是正确的方法)
我想问(冒着听起来荒谬的风险,但需要确定):
编辑:
关于id,我认为是不是有个坏习惯。我会保留它,不确定以前的工作如何计算运行总计(我无法访问它)
有很多这样的表,每天有数百个(不要问我为什么)。这就是为什么 DBA 团队因为大小问题而要求我不要创建新索引。这就是为什么我考虑通过聚集索引重新排列表结构。还更改超出正常范围的数据类型。