|
原帖由 Yong Huang 于 2010-10-10 23:27 发表 ![]()
----A few days ago I emailed one of my developers. I said performance gain goes up in this order, difference between every two is in the order of 10 to 10000: instance or database tuning < SQL tuning < business logic tuning. For a DBA, practically speaking, business logic is not something we can control. So we need to focus on SQLs before making a big effort on anything else.
谢谢你的建议。
----quckros, did you check to see if there's any SQL having too many buffer gets?
有看到Top 10 SQLs by buffer gets ,貌似都是oracle自己产生的,能解释下吗
语句一,在Top 10中出现了5次,buffer gets都在621973255左右
SELECT procedure_catalog, procedure_schema, procedure_name, parameter_name,
ordinal_position, parameter_type, parameter_hasdefault,
parameter_default, is_nullable, data_type, character_maximum_length,
character_maximum_length character_octet_length, numeric_precision,
numeric_scale, description, type_name, type_name, overload
FROM (SELECT NULL procedure_catalog, owner procedure_schema,
DECODE (package_name,
NULL, object_name,
package_name || '.' || object_name
) procedure_name,
DECODE (POSITION,
0, 'RETURN_VALUE',
NVL (argument_name, CHR (0))
) parameter_name,
POSITION ordinal_position,
DECODE (in_out,
'IN', 1,
'IN/OUT', 2,
'OUT', DECODE (argument_name, NULL, 4, 3),
NULL
) parameter_type,
NULL parameter_hasdefault, NULL parameter_default,
NULL is_nullable,
DECODE (data_type,
'CHAR', 129,
'NCHAR', 129,
'DATE', 135,
'FLOAT', 139,
'LONG', 129,
'LONG RAW', 128,
'NUMBER', 139,
'RAW', 128,
'ROWID', 129,
'VARCHAR2', 129,
'NVARCHAR2', 129,
13
) data_type,
DECODE (data_type,
'CHAR', DECODE (data_length, NULL, 255, data_length),
'LONG', 2147483647,
'LONG RAW', 2147483647,
'ROWID', 18,
'RAW', DECODE (data_length, NULL, 255, data_length),
'VARCHAR2', DECODE (data_length,
NULL, 2000,
data_length
),
'DATE', NULL,
'FLOAT', NULL,
'NUMBER', NULL,
NULL
) character_maximum_length,
DECODE (data_type,
'DATE', 19,
'FLOAT', 15,
'NUMBER', DECODE (data_precision,
NULL, 0,
data_precision
),
'CHAR', NULL,
'NCHAR', NULL,
'LONG', NULL,
'LONG RAW', NULL,
'RAW', NULL,
'VARCHAR2', NULL,
'NVARCHAR2', NULL,
NULL
) numeric_precision,
DECODE (data_type,
'DATE', 0,
'NUMBER', DECODE (data_scale, NULL, 0, data_scale),
'CHAR', NULL,
'NCHAR', NULL,
'FLOAT', NULL,
'LONG', NULL,
'LONG RAW', NULL,
'RAW', NULL,
'VARCHAR2', NULL,
'NVARCHAR2', NULL,
NULL
) numeric_scale,
NULL description, data_type type_name, overload
FROM all_arguments
WHERE data_level = 0 AND data_type IS NOT NULL) procedure_parameters
WHERE procedure_name = 'CMC_PASSSTATION_CENTER'
ORDER BY 1, 2, 3, 5
语句二,还有一些跟它类似都是查ALL_SYNONYMS 表的,buffer gets都在135578628左右
SELECT /*+ RULE */ TABLE_OWNER, TABLE_NAME FROM ALL_SYNONYMS WHERE OWNER='PUBLIC' AND SYNONYM_NAME='CMC_PASSSTATION_CENTER'
[ 本帖最后由 quckros 于 2010-10-11 15:33 编辑 ] |
|