有许多的的未写入文档的参数其实在实际应用中也是委重要的,有时当你遇到一个corrupt,你去问oracle,oracle也许会说这个无能为力了,其实他们是有办法的,这其中就有这些内部参数的作用。
1、你用sys连入oracle,执行如下的sql语句,你可以看到有哪些未写入文档的参数
select
a.ksppinm "Parameter",
a.ksppdesc "Description",
b.ksppstvl "Session Value",
c.ksppstvl "Instance Value"
from
x$ksppi a,
x$ksppcv b,
x$ksppsv c
where a.indx = b.indx
and a.indx = c.indx
and a.ksppinm like '/_%' escape '/'
order by 1
2、也并不是所有的都是有用的,有些还是有害的,下面介绍14个有用的。
3、美国著名oracle专家Rich Niemiec有14个特别喜欢的undocument parameter,我把原文引入如下:
a、_ALLOW_RESETLOGS_CORRUPTION -- May be only way to start a db backed up
open without setting backup on tablespaces, will result in unsupported system. See the
detailed section for how to use this in a recovery situation.
b、_CORRUPTED_ROLLBACK_SEGMENTS -- Only way to startup with corrupted public
rollback segments. Can be used without fear of desupport.
c、_ALLOW_READ_ONLY_CORRUPTION – Allows you to open a database even if it has
corruption. This should only be used to export as much data from a corrupted database
as is possible before recreating a database. You should not use a database for normal
use that has been opened in this manner as it will not be supported.
d、_SPIN_COUNT -- Sets the number of spins a process will undergo before trying to get a
latch. If CPU is not fully loaded a high value may be best, for a fully loaded CPU a
smaller value may help. Usually defaults to 2000. Can be changed without fear of
desupport. This parameter flips from being undocumented to documented depending on
database version.
e、_LOG_ENTRY_PREBUILD_THRESHOLD – This parameter was documented at one
time, now it is undocumented. It is the minimum size of entry in blocks that will be prebuilt
for redo log entries, usually set to 30.
f、_LATCH_SPIN_COUNT -- Shows how often a latch request will be taken
g、_DB_BLOCK_WRITE_BATCH – This parameter was documented at one time, but is now
undocumented. It is the number of blocks that the db writers will write in each batch,
defaults to 512 or DB_FILES*DB_FILE_SIMULTANEOUS_WRITES/2 up to a limit of ¼
of the value of DB_BLOCK_BUFFERS.
h、_CPU_COUNT – This is another parameter that flips from undocumented to
documented. Should be set automatically but on some platforms it doesn't work, set to
the number of CPUs. This determines several other parameters.
i、_INIT_SQL_FILE -- This is the initialization SQL script run by Oracle when a db is
created. This should be sql.bsq, if you change it, you may not be supported.
j、_TRACE_FILES_PUBLIC -- Changes the privileges on trace files such that everyone can
read them. Should be OK to change at will.
k、_FAST_FULL_SCAN_ENABLED -- Enables fast full index scans (or disables them) if
only indexes are required to resolve the queries. Change this at will.
l、_CORRUPT_BLOCKS_ON_STUCK_RECOVERY -- Can sometimes get a corrupted db
up, you probably won't be supported if done without Oracle supports blessing, if you use
it, immediately export the tables you need and rebuild the db.
m、_ALWAYS_STAR_TRANSFORMATION -- Helps to tune data warehouse queries if you
have a properly designed data warehouse.
n、_SMALL_TABLE_THRESHOLD -- Sets the size of table considered a small table, a small
table is automatically pinned into the buffers when queried. Defaults to 2% in Oracle9i