问题描述
嗨,汤姆,
我们已经实现了基于会话的客户端标识符的RLS
当RLS应用于特定客户端标识符时,查询将继续运行
如果我对管理员用户应用相同的where条件,则查询运行速度很快
这是由于RLS还是其他原因?
是否一次为表的每一行或整个表应用条件?
我们已经实现了基于会话的客户端标识符的RLS
当RLS应用于特定客户端标识符时,查询将继续运行
如果我对管理员用户应用相同的where条件,则查询运行速度很快
这是由于RLS还是其他原因?
是否一次为表的每一行或整个表应用条件?
专家解答
RLS会更改查询的文本,因此您可能正在运行一个全新的查询,然后要遵守与普通SQL相同的标准SQL调优要求,即,良好的统计信息,正确的索引等...
我会看跑步:
ALTER会话集事件 '永远10730跟踪名称上下文,级别1';
然后使用RLS策略运行您的SQL。例如,如果你有一个RLS函数 (说)
然后,运行 “从emp中选择 *” 时创建的跟踪文件将显示
然后,您可以将调整工作集中在 * true * SQL上
我会看跑步:
ALTER会话集事件 '永远10730跟踪名称上下文,级别1';
然后使用RLS策略运行您的SQL。例如,如果你有一个RLS函数 (说)
create or replace function rls_func ... as begin return 'hiredate is not null'; end; /
然后,运行 “从emp中选择 *” 时创建的跟踪文件将显示
Policy function: RLS_FUNC RLS view : SELECT "EMPNO","ENAME","JOB","MGR","HIREDATE","SAL","COMM","DEPTNO" FROM "CHA"."EMP" "EMP" WHERE (hiredate is not null)
然后,您可以将调整工作集中在 * true * SQL上
文章转载自ASKTOM,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




