在oracle中创建索引时的表空间
在oracle中为索引分配表空间与在创建时不分配任何表空间有什么区别?有什么优点或缺点吗?如果有优势,有没有办法知道哪一个表空间是可以分配给索引的最佳表空间?如果在创建索引时未指定表空间,则将在该用户的默认表空间中创建该表空间 默认情况下,数据库中有多个表空间。例如,在我的11gXE中:在oracle中创建索引时的表空间,oracle,indexing,tablespace,Oracle,Indexing,Tablespace,在oracle中为索引分配表空间与在创建时不分配任何表空间有什么区别?有什么优点或缺点吗?如果有优势,有没有办法知道哪一个表空间是可以分配给索引的最佳表空间?如果在创建索引时未指定表空间,则将在该用户的默认表空间中创建该表空间 默认情况下,数据库中有多个表空间。例如,在我的11gXE中: SQL> select tablespace_name from dba_tablespaces; TABLESPACE_NAME ------------------------------ SYST
SQL> select tablespace_name from dba_tablespaces;
TABLESPACE_NAME
------------------------------
SYSTEM
SYSAUX
UNDOTBS1
TEMP
USERS
SQL>
如您所见,没有名称听起来像索引的表空间。但是,如果你愿意,你可以创建一个。几年前,将数据与索引分开,将它们放在各自的表空间中,放在不同的硬盘上,以期获得更好的性能,这是有意义的。回答您的问题:哪个表空间最好?您将为索引创建的索引
然而,如今,有了快速、现代化的服务器,这是不可能做到的,因为Oracle负责一切。有些人说他们喜欢做DBA,看着Oracle管理自己
因此,只需创建索引,不必担心其余部分。我有3个可用的表空间:tab_2k、tab_8k和tab_16k。我试图优化一个查询,并根据我将索引分配给哪个表空间,一致GET的数量是高还是低。最好的情况是将索引分配给tab_16k。后一种情况比指定的默认表空间更好。我想知道为什么某些表空间比其他表空间更好。纯粹是猜测,但我希望tab_2k使用2048字节的页面大小,tab_4k使用4096字节的页面大小,tab_16k使用16384字节的页面大小。我预计tab_16k上的一个对象所需的物理I/O数量大约是tab_2k上的同一个对象的八分之一。YMMV@BobJarvis说,这个评论可能应该澄清一下,因为它听起来好像tab_16k无条件地比tab_2k好。如果您正在读取一个40字节项的索引,那么将加载16k,并将其保留在缓冲区缓存中,而不是2k。因此,平均而言,I/O更少,但可能会浪费更多的RAM。