Add hint + improve code

This commit is contained in:
Jan Kvetina 2022-01-25 17:21:43 +01:00
parent b0dff8a0f6
commit 38778e2e78
5 changed files with 46 additions and 34 deletions

View File

@ -1,17 +1,16 @@
CREATE OR REPLACE VIEW logs_overview AS
WITH x AS (
SELECT
app.get_app_id() AS app_id,
app.get_item('$RECENT_LOG_ID') AS recent_log_id,
app.get_item('$FLAG') AS flag,
app.get_item('$PAGE_ID') AS page_id,
app.get_item('$USER_ID') AS user_id,
app.get_item('$SESSION_ID') AS session_id,
app.get_item('$MODULE_NAME') AS module_name,
app.get_item('$ACTION_NAME') AS action_name,
app.get_date_item('G_TODAY') AS today
FROM users u
WHERE u.user_id = app.get_user_id()
SELECT /*+ MATERIALIZE */
app.get_app_id() AS app_id,
app.get_number_item('$RECENT_LOG_ID') AS recent_log_id,
app.get_item('$FLAG') AS flag,
app.get_number_item('$PAGE_ID') AS page_id,
app.get_item('$USER_ID') AS user_id,
app.get_number_item('$SESSION_ID') AS session_id,
app.get_item('$MODULE_NAME') AS module_name,
app.get_item('$ACTION_NAME') AS action_name,
app.get_date_item('G_TODAY') AS today
FROM DUAL
)
SELECT
l.log_id,

View File

@ -1,4 +1,10 @@
CREATE OR REPLACE FORCE VIEW logs_tree AS
WITH x AS (
SELECT /*+ MATERIALIZE */
app.get_app_id() AS app_id,
app.get_log_tree_id() AS log_id
FROM DUAL
)
SELECT
l.log_id,
l.log_parent,
@ -15,9 +21,10 @@ SELECT
l.session_id,
l.created_at
FROM logs l
CROSS JOIN x
CONNECT BY l.log_parent = PRIOR l.log_id
START WITH l.log_id = app.get_log_tree_id()
AND l.app_id IN (app.get_app_id(), 0)
START WITH l.log_id = x.log_id
AND l.app_id IN (x.app_id, 0)
ORDER SIBLINGS BY l.log_id;
--
COMMENT ON TABLE logs_tree IS '[CORE - DASHBOARD] All messages related to selected tree id (`app.get_log_tree_id()`)';

View File

@ -1,13 +1,10 @@
CREATE OR REPLACE VIEW nav_regions AS
WITH x AS (
SELECT
app.get_item('$PAGE_ID') AS page_id,
app.get_item('$AUTH_SCHEME') AS auth_scheme,
a.app_id
FROM users u
JOIN apps a
ON a.app_id = app.get_app_id()
WHERE u.user_id = app.get_user_id()
SELECT /*+ MATERIALIZE */
app.get_app_id() AS app_id,
app.get_number_item('$PAGE_ID') AS page_id,
app.get_item('$AUTH_SCHEME') AS auth_scheme
FROM DUAL
),
c AS (
SELECT

View File

@ -1,10 +1,10 @@
CREATE OR REPLACE VIEW obj_tables_ref_pages AS
WITH x AS (
SELECT
app.get_app_id() AS app_id,
app.get_item('$TABLE_NAME') AS table_name
FROM users u
WHERE u.user_id = app.get_user_id()
SELECT /*+ MATERIALIZE */
app.get_app_id() AS app_id,
app.get_owner() AS owner_,
app.get_item('$TABLE_NAME') AS table_name
FROM DUAL
)
SELECT
r.page_id,
@ -31,7 +31,7 @@ WHERE r.query_type_code = 'TABLE'
SELECT DISTINCT d.name AS view_name
FROM user_dependencies d
CROSS JOIN x
WHERE d.referenced_owner = app.get_owner()
WHERE d.referenced_owner = x.owner_
AND d.type = 'VIEW'
CONNECT BY NOCYCLE d.referenced_name = PRIOR d.name
AND d.referenced_type = 'VIEW'

View File

@ -1,15 +1,24 @@
CREATE OR REPLACE VIEW sessions_overview AS
WITH s AS (
WITH x AS (
SELECT /*+ MATERIALIZE */
app.get_app_id() AS app_id,
app.get_number_item('$SESSION_ID') AS session_id,
app.get_item('$USER_ID') AS user_id,
app.get_date_item('G_TODAY') AS today
FROM DUAL
),
s AS (
SELECT
s.*,
TRUNC(s.created_at) AS today
FROM sessions s
WHERE s.app_id = app.get_app_id()
AND (s.session_id = app.get_item('$SESSION_ID') OR app.get_item('$SESSION_ID') IS NULL)
AND (s.user_id = app.get_item('$USER_ID') OR app.get_item('$USER_ID') IS NULL)
JOIN x
ON s.app_id = x.app_id
AND (s.session_id = x.session_id OR x.session_id IS NULL)
AND (s.user_id = x.user_id OR x.user_id IS NULL)
--
AND s.created_at >= app.get_date_item('G_TODAY')
AND s.created_at < app.get_date_item('G_TODAY') + 1
AND s.created_at >= x.today
AND s.created_at < x.today + 1
),
l AS (
SELECT