Postgres会自动将索引放在外键和主键上吗?我该怎么说?是否有一个命令可以返回表上的所有索引?
我有一张桌子A和一张桌子B. 在主键上A有一个外键,.BBB_ID
由于某种原因(我知道有正当理由)当我在密钥上加入这两个表时它没有使用索引.
我是否需要单独创建索引A.B_ID或者是否存在外键提供的索引?
我目前正在开发Oracle.我有几个表,我为其定义了FOREIGN KEY约束.我已经阅读过这个面向SQL Server和这个面向MySQL的问题,但我找不到关于Oracle的问题.
所以问题总是一样的:为了优化查询性能,对于我为其创建FOREIGN KEY约束的那些列,我是否还必须创建一个显式的二级索引?Oracle是否自动在FOREIGN KEYed列上创建索引以提高JOIN期间的性能?
我通常执行WHERE子句与这些列进行比较的查询.
我有一个表Document,由大量其他表通过外键引用.我正在尝试删除文档记录,并根据我的执行计划,SQL Server正在对每个引用表执行聚簇索引扫描.这非常痛苦.
我以为让FK自动在FK字段上做一个索引?还是我错了?我是否真的必须绕过我的数据库,在每个FK字段上放置一个显式索引?
有没有可以分析SQL Server数据库潜在问题的工具?
例如:
uniqueidentifier没有列的索引FILL FACTORLastModifiedDate DATETIME有没有列UPDATE触发更新日期时间SET NOCOUNT ON(让它可疑"触发器返回结果集和/或正在运行SET NOCOUNT OFF而另一个未完成的结果集处于活动状态.")SET ANSI_NULLS OFFSET ANSI_PADDING OFFSET CONCAT_NULL_YIELDS_NULL OFFFILLFACTOR(即更多填充)受益text/ntext而不是varchar(max)/nvarchar(max)varchar可能包含本地化字符串的列,应该是nvarchar(例如Name,FirstName,LastName,BusinessName,CountryName,City)*=,=*,*=*而不是LEFT OUTER JOIN,RIGHT OUTER JOIN,FULL OUTER JOINtimestamp而不是rowversiontimestamp列 …foreign-keys ×4
indexing ×4
sql-server ×3
database ×2
oracle ×2
sql ×2
fxcop ×1
mysql ×1
performance ×1
postgresql ×1