【问题标题】:Yii2 Oracle performanceYii2 Oracle 性能
【发布时间】:2016-03-04 02:55:14
【问题描述】:

我经常使用 Yii2,但通常使用 MySQL。这是我第一次将它与 Oracle 一起使用。我发现性能很差。我做了一些谷歌搜索,发现虽然使用 Yii2 + Oracle 似乎并不常见,但似乎有人说它很慢。

我想知道可以采用哪些建议/提示/流程/包来提高性能?

我正在加载一张非常小的桌子。它有 8 行,整个表有 4 列。它们是使用 6.4MB 数据的 27 个数据库调用,运行大约需要 3 秒。查看日志我看到了很多我不太了解的内容:

 SELECT D.CONSTRAINT_NAME, D.CONSTRAINT_TYPE, C.COLUMN_NAME, C.POSITION, D.R_CONSTRAINT_NAME, E.TABLE_NAME AS TABLE_REF, F.COLUMN_NAME AS COLUMN_REF, C.TABLE_NAME 
 FROM 
 ALL_CONS_COLUMNS C 
 INNER JOIN ALL_CONSTRAINTS D ON D.OWNER = C.OWNER AND D.CONSTRAINT_NAME = C.CONSTRAINT_NAME
 LEFT JOIN ALL_CONSTRAINTS E ON E.OWNER = D.R_OWNER AND E.CONSTRAINT_NAME = D.R_CONSTRAINT_NAME 
 LEFT JOIN ALL_CONS_COLUMNS F ON F.OWNER = E.OWNER AND F.CONSTRAINT_NAME = E.CONSTRAINT_NAME AND F.POSITION = C.POSITION

SELECT a.column_name, a.data_type, a.data_precision, a.data_scale, a.data_length,
a.nullable, a.data_default,
(   SELECT D.constraint_type
    FROM ALL_CONS_COLUMNS C
    inner join ALL_constraints D on D.OWNER = C.OWNER and D.constraint_name = C.constraint_name
    WHERE C.OWNER = B.OWNER
       and C.table_name = B.object_name
       and C.column_name = A.column_name
       and D.constraint_type = 'P') as Key,
com.comments as column_comment
FROM ALL_TAB_COLUMNS A
inner join ALL_OBJECTS B ON b.owner = a.owner and ltrim(B.OBJECT_NAME) =  ltrim(A.TABLE_NAME)
LEFT JOIN all_col_comments com ON (A.owner = com.owner AND A.table_name = com.table_name AND A.column_name = com.column_name)

然后是关于触发器的更多内容。

当我尝试使用诸如

之类的关系时,我也会遇到错误

Model::find()->with('relationName')->all();

我明白了

'ORA-01795: maximum number of expressions in a list is 1000 error

这些表总共有大约 17k 行。一个表中大约有 11k 条,另一张表中有大约 7k 条链接。

我使用 fk 约束作为表中的引用。

【问题讨论】:

  • 上述查询请求有关您的数据库架构的信息。我从来没有用过 yii2,也不知道它为什么需要这些信息。

标签: performance oracle11g yii2


【解决方案1】:

在您的数据库配置中添加/使用以下设置。

'schemaCacheDuration' => 7200,
'schemaCache' => 'cache',
'enableSchemaCache' => true,

YII_DEBUGtrue 更改为 false 并将 YII_ENVdev 更改为 prod

这将减少不必要的 SQL 执行。

【讨论】:

    猜你喜欢
    • 2016-04-05
    • 2010-12-04
    • 2021-03-13
    • 2016-05-27
    • 2012-02-26
    • 2010-10-27
    • 1970-01-01
    • 2016-06-25
    • 1970-01-01
    相关资源
    最近更新 更多