Sql server 2008 r2 在SQL Server 2008 R2中查找在过去15天内创建的表的索引

Sql server 2008 r2 在SQL Server 2008 R2中查找在过去15天内创建的表的索引,sql-server-2008-r2,indexing,Sql Server 2008 R2,Indexing,在过去15天内,我在SQLServer2008R2中的几个表上创建了一些新索引 知道表名后,是否可以确定在过去15天内创建了哪些索引?试试这个 select crdate, i.name, object_name(o.id) from sysindexes i join sysobjects o ON o.id = i.id where crdate >= getdate()-15 不太喜欢像sysindexes这样的向后兼容视图,因为您不能永远依赖它们,而且因为其他答案中建议的连接是在

在过去15天内,我在SQLServer2008R2中的几个表上创建了一些新索引

知道表名后,是否可以确定在过去15天内创建了哪些索引?

试试这个

select crdate, i.name, object_name(o.id)
from sysindexes i
join sysobjects o ON o.id = i.id
where crdate >= getdate()-15

不太喜欢像
sysindexes
这样的向后兼容视图,因为您不能永远依赖它们,而且因为其他答案中建议的连接是在表的创建日期过滤的,而不是索引。对于普通索引,SQL Server根本不记录创建索引的日期/时间(尽管您可以根据约束条件获取该日期/时间)

如果15天还没有推出,您可以在默认跟踪中找到这些信息(以及谁创建了索引,即使是在约束条件下,您也无法从元数据中获得这些信息):

USE your_database;
GO

DECLARE @path NVARCHAR(260);

SELECT 
   @path = REVERSE(SUBSTRING(REVERSE([path]), 
   CHARINDEX(CHAR(92), REVERSE([path])), 260)) + N'log.trc'
FROM    sys.traces
WHERE   is_default = 1;

SELECT 
  HostName, LoginName, ApplicationName, StartTime, [Index] = ObjectName, IndexId
FROM sys.fn_trace_gettable(@path, DEFAULT)
WHERE EventClass = 46
AND EventSubClass = 1
AND DatabaseName = DB_NAME()
AND ObjectID = OBJECT_ID('dbo.your_table_name')
AND IndexID IS NOT NULL
AND StartTime >= CONVERT(DATE, DATEADD(DAY, -15, GETDATE()))
ORDER BY EndTime DESC;

展望未来,您可以使用DDL触发器主动记录此信息,这样您就不必混乱和依赖默认跟踪的时间来审核这些活动。

从SQL Server 2005及更新版本开始,您应该使用
sys
目录架构中的
sys.index
(不再是旧的、不推荐使用的
sysindex
视图)即
crdate
是“基本”对象(例如表)的创建日期@marc_s这是正确的,除了对于常规索引,
sys.indexes
sys.objects
中不再有相应的行,因此您不能通过这种方式确定
create_date
。对于一个不受约束的标准索引,您可以从sys.objects(或sysobjects)中获得最佳结果是表的创建日期,而不是索引。如果Sunil需要它来满足暂时的需求,那么sysindexes是否旧且不推荐使用就无关紧要了。但这肯定不会给出正确的答案。Aaron-我尝试了你的查询,但它说:你没有运行“SYS.TRACES”的权限。所以我需要另一个ap走近,谢谢,Sunil@Sunil嗯,这可能是您需要解决的问题。毕竟,如果不允许您查询sys.traces,您可能也会被阻止访问其他元数据。Aaron-我还可以使用其他查询吗?@Sunil我不知道-正如我所说,SQL Server不会为常规索引存储此信息。Convince告诉你上面的人你需要找到这些信息,然后他们可以允许你访问(即使只是暂时的)或者他们可以为您运行查询。当然,关心您是否得到答案的人有权执行这些操作之一。Aaron-实际上,来自regisIs的查询返回的是索引名,而不是表名。因此,它似乎起到了作用。