Remove Users dependency + add MATERIALIZE hint

This commit is contained in:
Jan Kvetina 2022-01-25 17:19:39 +01:00
parent 9f0e6054a0
commit b0dff8a0f6
25 changed files with 70 additions and 89 deletions

View File

@ -1,9 +1,8 @@
CREATE OR REPLACE VIEW dashboard_overview AS
WITH x AS (
SELECT
SELECT /*+ MATERIALIZE */
app.get_app_id() AS app_id
FROM users u
WHERE u.user_id = app.get_user_id()
FROM DUAL
),
s AS (
SELECT

View File

@ -1,12 +1,11 @@
CREATE OR REPLACE VIEW events_chart AS
WITH x AS (
SELECT
SELECT /*+ MATERIALIZE */
app.get_app_id() AS app_id,
app.get_item('$EVENT_ID') AS event_id,
app.get_number_item('$EVENT_ID') AS event_id,
app.get_item('$USER_ID') AS user_id,
TRUNC(app.get_date_item('G_TODAY')) AS today
FROM users u
WHERE u.user_id = app.get_user_id()
FROM DUAL
),
z AS (
SELECT

View File

@ -1,10 +1,9 @@
CREATE OR REPLACE VIEW nav_badges AS
WITH x AS (
SELECT
SELECT /*+ MATERIALIZE */
app.get_app_id() AS app_id,
app.is_developer_y() AS is_developer
FROM users u
WHERE u.user_id = app.get_user_id()
FROM DUAL
)
SELECT -- today errors on dashboard
900 AS page_id,

View File

@ -1,11 +1,10 @@
CREATE OR REPLACE VIEW nav_overview AS
WITH x AS (
SELECT
SELECT /*+ MATERIALIZE */
app.get_page_id() AS page_id,
app.get_app_id() AS app_id,
app.get_core_app_id() AS core_app_id
FROM users u
WHERE u.user_id = app.get_user_id()
FROM DUAL
),
t AS (
SELECT

View File

@ -1,6 +1,6 @@
CREATE OR REPLACE FORCE VIEW nav_top AS
WITH curr AS (
SELECT
SELECT /*+ MATERIALIZE */
app.get_app_id() AS app_id,
app.get_page_id() AS page_id,
app.get_page_parent() AS parent_id,
@ -8,8 +8,7 @@ WITH curr AS (
app.get_page_group() AS page_group,
app.get_user_id() AS user_id,
app.get_user_name() AS user_name
FROM users u
WHERE u.user_id = app.get_user_id()
FROM DUAL
),
j AS (
-- get javascript targets hidden in page item

View File

@ -1,9 +1,8 @@
CREATE OR REPLACE VIEW obj_columns AS
WITH x AS (
SELECT
SELECT /*+ MATERIALIZE */
app.get_item('$TABLE_NAME') AS table_name
FROM users u
WHERE u.user_id = app.get_user_id()
FROM DUAL
),
c AS (
SELECT

View File

@ -1,9 +1,8 @@
CREATE OR REPLACE VIEW obj_constraints AS
WITH x AS (
SELECT
SELECT /*+ MATERIALIZE */
app.get_item('$TABLE_NAME') AS table_name
FROM users u
WHERE u.user_id = app.get_user_id()
FROM DUAL
),
n AS (
SELECT XMLTYPE(DBMS_XMLGEN.GETXML('SELECT c.constraint_name AS name, c.search_condition AS text

View File

@ -1,9 +1,8 @@
CREATE OR REPLACE VIEW obj_constraints_fix_dt1 AS
WITH x AS (
SELECT
SELECT /*+ MATERIALIZE */
app.get_item('$TABLE_NAME') AS table_name
FROM users u
WHERE u.user_id = app.get_user_id()
FROM DUAL
),
s AS (
SELECT

View File

@ -1,9 +1,8 @@
CREATE OR REPLACE VIEW obj_constraints_fix_dt2 AS
WITH x AS (
SELECT
SELECT /*+ MATERIALIZE */
app.get_item('$TABLE_NAME') AS table_name
FROM users u
WHERE u.user_id = app.get_user_id()
FROM DUAL
),
s AS (
SELECT

View File

@ -1,9 +1,8 @@
CREATE OR REPLACE VIEW obj_indexes AS
WITH x AS (
SELECT
SELECT /*+ MATERIALIZE */
app.get_item('$TABLE_NAME') AS table_name
FROM users u
WHERE u.user_id = app.get_user_id()
FROM DUAL
)
SELECT
i.table_name,

View File

@ -1,9 +1,8 @@
CREATE OR REPLACE VIEW obj_indexes_missing AS
WITH x AS (
SELECT
SELECT /*+ MATERIALIZE */
app.get_item('$TABLE_NAME') AS table_name
FROM users u
WHERE u.user_id = app.get_user_id()
FROM DUAL
),
f AS (
SELECT

View File

@ -1,10 +1,9 @@
CREATE OR REPLACE VIEW obj_modules AS
WITH x AS (
SELECT
SELECT /*+ MATERIALIZE */
app.get_item('$PACKAGE_NAME') AS package_name,
app.get_item('$MODULE_TYPE') AS module_type
FROM users u
WHERE u.user_id = app.get_user_id()
FROM DUAL
),
p AS (
SELECT

View File

@ -1,9 +1,8 @@
CREATE OR REPLACE VIEW obj_packages AS
WITH x AS (
SELECT
SELECT /*+ MATERIALIZE */
app.get_item('$PACKAGE_NAME') AS package_name
FROM users u
WHERE u.user_id = app.get_user_id()
FROM DUAL
),
s AS (
SELECT

View File

@ -1,9 +1,8 @@
CREATE OR REPLACE VIEW obj_partitions AS
WITH x AS (
SELECT
SELECT /*+ MATERIALIZE */
app.get_item('$TABLE_NAME') AS table_name
FROM users u
WHERE u.user_id = app.get_user_id()
FROM DUAL
),
p AS (
SELECT

View File

@ -1,13 +1,12 @@
CREATE OR REPLACE VIEW obj_tables AS
WITH x AS (
SELECT
SELECT /*+ MATERIALIZE */
app.get_item('$TABLE_NAME') AS table_name
FROM users u
WHERE u.user_id = app.get_user_id()
FROM DUAL
),
s AS (
-- columns count
SELECT /* materialize */
SELECT /*+ MATERIALIZE */
c.table_name,
COUNT(*) AS count_cols
FROM user_tab_cols c
@ -17,7 +16,7 @@ s AS (
),
c AS (
-- constraints overview
SELECT /* materialize */
SELECT /*+ MATERIALIZE */
c.table_name,
NULLIF(SUM(CASE WHEN c.constraint_type = 'P' THEN 1 ELSE 0 END), 0) AS count_pk,
NULLIF(SUM(CASE WHEN c.constraint_type = 'U' THEN 1 ELSE 0 END), 0) AS count_uq,
@ -30,7 +29,7 @@ c AS (
),
i AS (
-- indexes overview
SELECT /* materialize */
SELECT /*+ MATERIALIZE */
i.table_name,
COUNT(i.table_name) AS count_ix
FROM user_indexes i
@ -44,7 +43,7 @@ i AS (
),
g AS (
-- triggers overview
SELECT /* materialize */
SELECT /*+ MATERIALIZE */
g.table_name,
COUNT(g.table_name) AS count_trg
FROM user_triggers g
@ -54,7 +53,7 @@ g AS (
),
p AS (
-- partitions count
SELECT /* materialize */
SELECT /*+ MATERIALIZE */
p.table_name,
COUNT(*) AS partitions
FROM user_tab_partitions p

View File

@ -1,9 +1,8 @@
CREATE OR REPLACE VIEW obj_tables_ref_down AS
WITH x AS (
SELECT
SELECT /*+ MATERIALIZE */
app.get_item('$TABLE_NAME') AS table_name
FROM users u
WHERE u.user_id = app.get_user_id()
FROM DUAL
),
t AS (
SELECT

View File

@ -1,10 +1,10 @@
CREATE OR REPLACE VIEW obj_tables_ref_objects AS
WITH x AS (
SELECT
SELECT /*+ MATERIALIZE */
app.get_app_id() AS app_id,
app.get_owner() AS owner_,
app.get_item('$TABLE_NAME') AS table_name
FROM users u
WHERE u.user_id = app.get_user_id()
FROM DUAL
)
SELECT
'<span style="margin-left: 2rem;">' || d.name || '</SPAN>' AS ref_name,
@ -17,7 +17,8 @@ SELECT
ELSE NULL
END AS ref_link
FROM user_dependencies d
WHERE d.referenced_owner = app.get_owner()
AND d.referenced_name = (SELECT x.table_name FROM x)
JOIN x
ON x.owner_ = d.referenced_owner
AND x.table_name = d.referenced_name
GROUP BY d.name;

View File

@ -1,9 +1,8 @@
CREATE OR REPLACE VIEW obj_tables_ref_up AS
WITH x AS (
SELECT
SELECT /*+ MATERIALIZE */
app.get_item('$TABLE_NAME') AS table_name
FROM users u
WHERE u.user_id = app.get_user_id()
FROM DUAL
),
t AS (
SELECT

View File

@ -1,12 +1,11 @@
CREATE OR REPLACE VIEW obj_triggers AS
WITH x AS (
SELECT
SELECT /*+ MATERIALIZE */
app.get_app_id() AS app_id,
app.get_item('$TABLE_NAME') AS table_name,
app.get_item('$TRIGGER_NAME') AS trigger_name,
app.get_date_item('G_TODAY') AS today
FROM users u
WHERE u.user_id = app.get_user_id()
FROM DUAL
),
r AS (
SELECT /* materialize */

View File

@ -1,10 +1,9 @@
CREATE OR REPLACE VIEW obj_views AS
WITH x AS (
SELECT
SELECT /*+ MATERIALIZE */
app.get_app_id() AS app_id,
app.get_item('$VIEW_NAME') AS view_name
FROM users u
WHERE u.user_id = app.get_user_id()
FROM DUAL
),
r AS (
SELECT

View File

@ -1,11 +1,10 @@
CREATE OR REPLACE VIEW roles_cards AS
WITH x AS (
SELECT
u.user_id,
SELECT /*+ MATERIALIZE */
app.get_app_id() AS app_id,
app.get_user_id() AS user_id,
app.is_developer_y() AS is_developer
FROM users u
WHERE u.user_id = app.get_user_id()
FROM DUAL
)
SELECT
r.role_id,

View File

@ -1,12 +1,11 @@
CREATE OR REPLACE VIEW scheduler_details AS
WITH x AS (
SELECT
SELECT /*+ MATERIALIZE */
app.get_app_id() AS app_id,
app.get_date_item('G_TODAY') AS today,
app.get_item('$JOB_NAME') AS job_name,
app.get_item('$JOB_STATUS') AS job_status
FROM users u
WHERE u.user_id = app.get_user_id()
FROM DUAL
)
SELECT
REGEXP_SUBSTR(d.job_name, '^([^#]+)#(\d+)$', 1, 1, NULL, 2) AS log_id,

View File

@ -1,12 +1,11 @@
CREATE OR REPLACE VIEW sessions_chart AS
WITH x AS (
SELECT
SELECT /*+ MATERIALIZE */
app.get_app_id() AS app_id,
app.get_item('$USER_ID') AS user_id,
app.get_date_item('G_TODAY') AS today,
10 AS buckets
FROM users u
WHERE u.user_id = app.get_user_id()
FROM DUAL
),
z AS (
SELECT

View File

@ -1,12 +1,11 @@
CREATE OR REPLACE VIEW settings_overview AS
WITH x AS (
SELECT
SELECT /*+ MATERIALIZE */
UPPER('SETT') AS package_name, -- app_actions spec
UPPER('GET_') AS prefix,
app.get_item('$SETTING_NAME') AS setting_name,
app.get_app_id() AS app_id
FROM users u
WHERE u.user_id = app.get_user_id()
FROM DUAL
),
p AS (
SELECT p.procedure_name, a.data_type

View File

@ -1,13 +1,14 @@
CREATE OR REPLACE VIEW users_overview AS
WITH x AS (
SELECT
app.get_app_id() AS app_id,
app.get_user_id() AS user_id,
SELECT /*+ MATERIALIZE */
app.get_app_id() AS app_id,
app.get_user_id() AS user_id,
app.get_item('$USER_ID') AS filter_user_id,
app.get_item('$ROLE_ID') AS filter_role_id,
--
TRUNC(NVL(app.get_date_item('G_TODAY'), SYSDATE)) AS today,
CAST(TRUNC(NVL(app.get_date_item('G_TODAY'), SYSDATE)) AS TIMESTAMP) AS today_ts
FROM users u
WHERE u.user_id = app.get_user_id()
FROM DUAL
),
s AS (
SELECT
@ -75,18 +76,20 @@ SELECT
u.updated_by,
u.updated_at
FROM users u
CROSS JOIN x
LEFT JOIN s ON s.user_id = u.user_id
LEFT JOIN l ON l.user_id = u.user_id
LEFT JOIN r ON r.user_id = u.user_id
LEFT JOIN b ON b.user_id = u.user_id
WHERE u.user_id = NVL(app.get_item('$USER_ID'), u.user_id)
--
WHERE u.user_id = NVL(x.filter_user_id, u.user_id)
AND (
u.user_id IN (
SELECT r.user_id
FROM user_roles r
WHERE r.role_id = app.get_item('$ROLE_ID')
WHERE r.role_id = x.filter_role_id
)
OR app.get_item('$ROLE_ID') IS NULL
OR x.filter_role_id IS NULL
);
--
COMMENT ON TABLE users_overview IS '[CORE - DASHBOARD] Users';