sql server:必要时在外键上创建索引
发布时间:2020-12-12 16:34:34 所属栏目:MsSql教程 来源:网络整理
导读:我有很多表与外键,有些有索引,而其他没有. 所有外键都被命名为FK_外键的名称索引名称为IX_外键的名称gt ;. 有没有一些良好的做法,给定列的基数,创建(或不)索引? 这可以用T-SQL命令编写吗? 解决方法 如果它们是通过T-SQL脚本或通过Designer创建的,这并不重要
我有很多表与外键,有些有索引,而其他没有.
所有外键都被命名为FK_<外键的名称>索引名称为IX_<外键的名称> ;. 有没有一些良好的做法,给定列的基数,创建(或不)索引? 这可以用T-SQL命令编写吗? 解决方法如果它们是通过T-SQL脚本或通过Designer创建的,这并不重要.你的问题有点含糊不清,所以我不确定你是否也可以索引所有的外键.但是,如果是,则应在查询中频繁引用的列上创建索引,并且可以执行以下操作来提高性能:>运行数据库调优向导,该向导将提供改进的摘要并推荐索引. 要通过T-SQL创建索引: CREATE INDEX IX_INDEX_NAME ON Table (FieldName); 要获取所有外键的列表: SELECT f.name AS ForeignKey,OBJECT_NAME(f.parent_object_id) AS TableName,COL_NAME(fc.parent_object_id,fc.parent_column_id) AS ColumnName,OBJECT_NAME (f.referenced_object_id) AS ReferenceTableName,COL_NAME(fc.referenced_object_id,fc.referenced_column_id) AS ReferenceColumnName FROM sys.foreign_keys AS f INNER JOIN sys.foreign_key_columns AS fc ON f.OBJECT_ID = fc.constraint_object_id 要生成在所有外键上应用索引的脚本,您可以执行以下操作: SELECT 'CREATE INDEX [IX_' + f.name + '] ON ' + OBJECT_NAME(f.parent_object_id) + '(' + COL_NAME(fc.parent_object_id,fc.parent_column_id) + ')]' FROM sys.foreign_keys AS f INNER JOIN sys.foreign_key_columns AS fc ON f.OBJECT_ID = fc.constraint_object_id http://msdn.microsoft.com/en-us/library/ms188783.aspx (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |