Tag: 聚集索引

我怎么知道一个数据库表是否被访问了? 想要像“select触发器”

我有一个非常大的数据库,有数百个表,经过许多产品升级,我确信其中有一半不再被使用。 我怎么知道一张桌子是否正在被选中呢? 我不能只使用Profiler – 我不仅需要观察超过几天,而且还有成千上万的存储过程,Profiler也不会将SP调用转换为表访问调用。 我唯一能想到的就是在感兴趣的表上创build一个聚集索引,然后监视sys.dm_db_index_usage_stats以查看聚集索引中是否有任何查找或扫描,这意味着表中的数据已被加载。 但是,在每张表上添加聚簇索引是一个坏主意(由于许多原因),因为这是不可行的。 我还有其他select吗? 我一直想要一个像“SELECT触发器”这样的function,但是SQL Server也可能没有这个function。 解: 谢谢,Remus,指着我走向正确的方向。 使用这些列,我创build了下面的SELECT,这正是我想要的。 WITH LastActivity (ObjectID, LastAction) AS ( SELECT object_id AS TableName, last_user_seek as LastAction FROM sys.dm_db_index_usage_stats u WHERE database_id = db_id(db_name()) UNION SELECT object_id AS TableName, last_user_scan as LastAction FROM sys.dm_db_index_usage_stats u WHERE database_id = db_id(db_name()) UNION SELECT object_id AS TableName, last_user_lookup as […]

SQL Server – 何时使用群集与非群集索引?

我知道群集和非群集索引之间的主要区别,并且了解它们是如何工作的。 我了解聚簇和非聚簇索引如何提高读取性能。 但有一点我不确定,那就是我会select一个的原因是什么。 例如:如果一个表没有聚集索引,是否应该创build一个非聚集索引,以及做什么的好处

聚簇索引与非聚簇索引之间的区别

我需要添加适当的索引到我的表,需要一些帮助。 我很困惑,需要澄清几点: 我应该使用索引非int列吗? 为什么/为什么不 我已经读了很多关于聚集索引和非聚集索引的知识,但是我仍然不能决定何时使用索引。 一个很好的例子会帮助我和其他许多开发者。 我知道我不应该使用经常更新的列或表的索引。 还有什么我应该注意的,我怎么能知道在进入testing阶段之前,这一切都很好?

聚集索引和非聚集索引有什么区别?

聚集索引和非聚集索引有什么区别?

聚簇索引必须是唯一的吗?

如果聚集索引不是唯一的,会发生什么? 可以导致性能不佳,因为插入的行stream到某种“溢出”页面? 它是“独特的”,如果是这样的? 什么是使其独特的最佳方式? 我问,因为我目前正在使用聚集索引来划分我的表的逻辑部分,但性能是如此,最近我得到的build议 ,使我的聚簇索引独特。 我想对此有第二个意见。 谢谢!