所以我有一张不断增长的桌子。大多数查询只针对最近的数据,比如一个月前的数据。我想这是常见问题,但我不知道如何解决。
我愿意更改设计,或者 MsSql 中是否有解决此问题的机制。由于数据库正在生产中并且难以复制,因此我尝试不同解决方案的选择有限。
CREATE TABLE [dbo].[mydata](
[ID] [int] IDENTITY(1,1) PRIMARY KEY NOT NULL,
[Code] [varchar](20) NOT NULL, -- index1 UNIQUE NONCLUSTERED INDEX
[Data2] [varchar](20) NULL,
[Data3] [nvarchar](50) NOT NULL,
... bunch of DATA around 5kb
[Time_1] [datetime] NULL, -- time created, -- index2 NONCLUSTERED INDEX
[Time_2] [datetime] NULL, -- time finished ( usualy within few days ) -- index3 NONCLUSTERED INDEX
[Status] [int] NOT NULL, -- active
[Modid] [timestamp] NOT NULL
)
Run Code Online (Sandbox Code Playgroud) 是否可以 ?Sql Server 作为发布者(主)和 PostgreSql 作为从(订阅者)?任何类型的复制真的。
postgresql replication sql-server-2008 sql-server postgresql-9.2
我在数据库中有很多存储过程和函数,很多都不再使用了,我想删除它们。我怎样才能可靠地找到它们?
我已经看到建议查看计划缓存的答案。这是一个很好的开始,但需要注意的是,保留这些计划涉及许多因素。那些因素是什么?我不想仅仅因为计划缓存丢失而删除函数的过程(例如:选项是否重新编译删除计划?)。
我还考虑过使用探查器(运行 2 个月听起来不是一个好主意),或者甚至制作一些脚本来更改所有正在使用的过程(尽管这对函数没有帮助)。
如果无法通过这种方式找到它们,还有其他方式吗?除了 profiler 之外,您还知道其他任何工具吗?(日志分析会太慢,因为我需要超过 2 个月的数据)。
我需要这些数据尽可能可靠。
我想知道索引的顺序如何影响性能(ASC、DESC)?如果有影响,为什么?我应该选择哪个顺序?
performance sql-server-2008 sql-server query-performance performance-tuning
有没有办法截断具有外键的表?删除和重新设定种子可能需要很长时间。删除和重新创建密钥是唯一的方法吗?如果是这样,是否有工具可以做到这一点?