中山企业建网站,最近热搜新闻事件,做百度手机网站快,惠州搜索引擎优化外键列上缺少索引会带来两个问题#xff0c;限制并发性、影响性能。而这两个问题中的任意一个都可能会造成严重性能问题。 无论是Or外键列上缺少索引会带来两个问题#xff0c;限制并发性、影响性能。而这两个问题中的任意一个都可能会造成严重性能问题。无论是Oracle的官方文…外键列上缺少索引会带来两个问题限制并发性、影响性能。而这两个问题中的任意一个都可能会造成严重性能问题。 无论是Or外键列上缺少索引会带来两个问题限制并发性、影响性能。而这两个问题中的任意一个都可能会造成严重性能问题。无论是Oracle的官方文档还是在Tom的书中都说明了两种情况下可以忽略外键上的索引。其实我认为不需要那么麻烦与增加一个索引所带来的性能开销和磁盘空间开销相比确实索引可能引发的问题要严重得多。因此我会选择在所有的外键列上添加索引虽然可能导致创建了部分多余的索引但是这样相除了外键约束由于确实索引所带来的性能问题和并发性问题。如果外键列上缺少索引从主表关联子表的查询就只能对子表选择全表扫描的查询这是显而易见的问题SQL CREATE TABLE T_P (ID NUMBER, NAME VARCHAR2(30));表已创建。SQL ALTER TABLE T_P ADD PRIMARY KEY (ID);表已更改。SQL CREATE TABLE T_C (ID NUMBER, FID NUMBER, NAME VARCHAR2(30));表已创建。SQL ALTER TABLE T_C ADD CONSTRAINT FK_T_C2 FOREIGN KEY (FID)3 REFERENCES T_P (ID);表已更改。SQL INSERT INTO T_P SELECT ROWNUM, TABLE_NAME FROM ALL_TABLES;已创建884行。SQL INSERT INTO T_C SELECT ROWNUM, MOD(ROWNUM, 884) 1, OBJECT_NAME2 FROM ALL_OBJECTS;已创建30339行。SQL COMMIT;提交完成。SQL SELECT A.ID, A.NAME, B.NAME2 FROM T_P A, T_C B3 WHERE A.ID B.FID4 AND A.ID 880;ID NAME NAME---------- ------------------------------ ------------------------------880 T_COMPRESS /eb2b6b5_Options1880 T_COMPRESS DATE880 T_COMPRESS DEF$_SCHEDULE880 T_COMPRESS GV_$SESSION_EVENT...880 T_COMPRESS sun/io/ByteToCharCp1251880 T_COMPRESS /5ba3839f_DirStateFactoryResul880 T_COMPRESS USER_INDEXTYPES已选择34行。执行计划----------------------------------------------------------0 SELECT STATEMENT OptimizerCHOOSE1 0 MERGE JOIN2 1 TABLE ACCESS (BY INDEX ROWID) OF T_P3 2 INDEX (UNIQUE SCAN) OF SYS_C002964 (UNIQUE)4 1 FILTER5 4 TABLE ACCESS (FULL) OF T_C统计信息----------------------------------------------------------0 recursive calls0 db block gets190 consistent gets0 physical reads0 redo size1829 bytes sent via SQL*Net to client394 bytes received via SQL*Net from client4 SQL*Net roundtrips to/from client0 sorts (memory)0 sorts (disk)34 rows processed由于缺少索引上面的这个关联查询只能采用MERGE JOIN而如果联立了外键列上的索引SQL CREATE INDEX IND_T_C_FID ON T_C (FID);索引已创建。SQL SELECT A.ID, A.NAME, B.NAME2 FROM T_P A, T_C B3 WHERE A.ID B.FID4 AND A.ID 880;ID NAME NAME---------- ------------------------------ ------------------------------880 T_COMPRESS /e1538703_EntryInfoImpl880 T_COMPRESS /7b832daf_ObjectStreamClassCom880 T_COMPRESS java/awt/peer/ScrollbarPeer880 T_COMPRESS /1982bd95_PermissionsEnumerato...880 T_COMPRESS /9ebda46b_GetInterface880 T_COMPRESS /c71f85e7_DefaultPopupFactory880 T_COMPRESS /7b549d81_DataFormatException已选择34行。执行计划----------------------------------------------------------0 SELECT STATEMENT OptimizerCHOOSE1 0 NESTED LOOPS2 1 TABLE ACCESS (BY INDEX ROWID) OF T_P3 2 INDEX (UNIQUE SCAN) OF SYS_C002964 (UNIQUE)4 1 TABLE ACCESS (BY INDEX ROWID) OF T_C5 4 INDEX (RANGE SCAN) OF IND_T_C_FID (NON-UNIQUE)统计信息----------------------------------------------------------0 recursive calls0 db block gets42 consistent gets1 physical reads0 redo size1829 bytes sent via SQL*Net to client394 bytes received via SQL*Net from client4 SQL*Net roundtrips to/from client0 sorts (memory)0 sorts (disk)34 rows processed本文原创发布php中文网转载请注明出处感谢您的尊重