Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
R
rbench
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Requirements
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Locked files
Build
Pipelines
Jobs
Pipeline schedules
Test cases
Artifacts
Deploy
Releases
Container Registry
Model registry
Operate
Environments
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Code review analytics
Issue analytics
Insights
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Terms and privacy
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Stefan Braß
rbench
Commits
309bf094
Commit
309bf094
authored
5 years ago
by
Stefan Braß
Browse files
Options
Downloads
Patches
Plain Diff
Improved Runtime Estimation in DB
parent
494af585
No related branches found
No related tags found
No related merge requests found
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
db/bench_cost.sql
+5
-1
5 additions, 1 deletion
db/bench_cost.sql
db/drop_db.sql
+2
-0
2 additions, 0 deletions
db/drop_db.sql
db/v_check.sql
+1
-1
1 addition, 1 deletion
db/v_check.sql
db/v_estimate.sql
+47
-17
47 additions, 17 deletions
db/v_estimate.sql
with
55 additions
and
19 deletions
db/bench_cost.sql
+
5
−
1
View file @
309bf094
...
...
@@ -2,7 +2,7 @@
-- Project: rbench - Logic Programming and Database Benchmarks
-- Filename: db/bench_cost.sql
-- Purpose: Database for Benchmark Runs: Cost Measure Data for Benchmarks
-- Last Change: 0
4
.10.2019
-- Last Change:
1
0.10.2019
-- Language: SQL (Tested with PostgreSQL)
-- Author: Stefan Brass
-- EMail: brass@informatik.uni-halle.de
...
...
@@ -200,6 +200,10 @@ INSERT INTO BENCH_COST VALUES('path2','y500_8k',8498,1,8498);
INSERT
INTO
BENCH_COST
VALUES
(
'path2'
,
'y1k_4k'
,
4998
,
1
,
4998
);
INSERT
INTO
BENCH_COST
VALUES
(
'path2'
,
'y1k_8k'
,
8998
,
1
,
8998
);
INSERT
INTO
BENCH_COST
VALUES
(
'j1axy'
,
'j1k10k'
,
1825612
,
1
,
61988581
);
INSERT
INTO
BENCH_COST
VALUES
(
'j1axy'
,
'j1k50k'
,
3856026
,
1
,
981332692
);
INSERT
INTO
BENCH_COST
VALUES
(
'j1axy'
,
'j1k250k'
,
4000000
,
1
,
1375000127
);
-- ============================================================================
-- Automatically Added Benchmark Cost Data:
-- ============================================================================
...
...
This diff is collapsed.
Click to expand it.
db/drop_db.sql
+
2
−
0
View file @
309bf094
...
...
@@ -53,6 +53,8 @@ DROP VIEW LOAD_EFFICIENCY;
DROP
VIEW
ESTIMATE_DATA_CSV
;
DROP
VIEW
ESTIMATE_DATA
;
DROP
VIEW
EVAL_ESTIMATES
;
DROP
VIEW
NUM_GOOD_ESTIMATES
;
DROP
VIEW
NUM_BAD_ESTIMATES
;
DROP
VIEW
ESTIMATE_ERR
;
DROP
VIEW
ESTIMATE_FORMULA
;
...
...
This diff is collapsed.
Click to expand it.
db/v_check.sql
+
1
−
1
View file @
309bf094
...
...
@@ -148,7 +148,7 @@ ORDER BY SYS, MACHINE, BENCH, FILE_ID;
CREATE
VIEW
INTEGRITY_ERROR
AS
SELECT
'Number of lines in INPUT_FILE and edges in INPUT_GRAPH differ for: '
||
F
.
FILE_ID
F
.
FILE_ID
AS
ERROR_MESSAGE
FROM
INPUT_FILE
F
,
INPUT_GRAPH
G
WHERE
F
.
FILE_ID
=
G
.
FILE_ID
AND
F
.
LINES
<>
G
.
NUM_EDGEs
;
...
...
This diff is collapsed.
Click to expand it.
db/v_estimate.sql
+
47
−
17
View file @
309bf094
...
...
@@ -70,44 +70,74 @@ ORDER BY SYS, BYTES_PER_FACT;
-- ============================================================================
CREATE
VIEW
ESTIMATE_FORMULA
AS
SELECT
R
.
SYS
,
E
.
STARTUP
,
E
.
LOAD_IDX
,
E
.
RULE_APP
,
E
.
RESULT
,
G
.
FILE_ID
,
SELECT
R
.
SYS
,
R
.
BENCH
,
E
.
STARTUP
,
E
.
LOAD_IDX
,
E
.
RULE_APP
,
E
.
RESULT
,
E
.
BENCH
AS
FORMULA_FOR
,
F
.
FILE_ID
,
ROUND
(
CAST
(
E
.
STARTUP
/
1000
+
(
G
.
NUM_EDG
ES
*
(
LOG
(
G
.
NUM_EDG
ES
)
/
LOG
(
2
))
*
E
.
LOAD_IDX
/
1000000000
)
+
(
F
.
LIN
ES
*
(
LOG
(
F
.
LIN
ES
)
/
LOG
(
2
))
*
E
.
LOAD_IDX
/
1000000000
)
+
(
C
.
INST
*
E
.
RULE_APP
/
1000000000
)
+
(
C
.
SIZE
*
E
.
RESULT
/
1000000000
)
AS
NUMERIC
),
3
)
AS
ESTIMATE
,
R
.
REAL_T
FROM
BEST_RESULT
R
,
INPUT_GRAPH
G
,
BENCH_COST
C
,
ESTIMATE_PAR
E
WHERE
R
.
SYS
=
E
.
SYS
AND
E
.
BENCH
=
'tcff'
AND
R
.
BENCH
=
'tcff'
AND
C
.
BENCH
=
'tcff'
AND
C
.
FILE_ID
=
G
.
FILE_ID
AND
R
.
FILE_ID
=
G
.
FILE_ID
ORDER
BY
R
.
SYS
,
E
.
STARTUP
,
E
.
LOAD_IDX
,
E
.
RULE_APP
,
E
.
RESULT
,
ESTIMATE
;
FROM
BEST_RESULT
R
,
INPUT_FILE
F
,
BENCH_COST
C
,
ESTIMATE_PAR
E
WHERE
R
.
SYS
=
E
.
SYS
AND
C
.
BENCH
=
R
.
BENCH
AND
C
.
FILE_ID
=
F
.
FILE_ID
AND
R
.
FILE_ID
=
F
.
FILE_ID
ORDER
BY
R
.
SYS
,
E
.
STARTUP
,
E
.
LOAD_IDX
,
E
.
RULE_APP
,
R
.
BENCH
,
E
.
RESULT
,
ESTIMATE
;
-- ============================================================================
-- Check System Speed Estimates (Real Time):
-- ============================================================================
CREATE
VIEW
ESTIMATE_ERR
AS
SELECT
E
.
SYS
,
E
.
STARTUP
,
E
.
LOAD_IDX
,
E
.
RULE_APP
,
E
.
RESULT
,
E
.
FILE_ID
,
E
.
ESTIMATE
,
E
.
REAL_T
,
SELECT
E
.
SYS
,
E
.
STARTUP
,
E
.
LOAD_IDX
,
E
.
RULE_APP
,
E
.
RESULT
,
E
.
FORMULA_FOR
,
E
.
BENCH
,
E
.
FILE_ID
,
E
.
ESTIMATE
,
E
.
REAL_T
,
E
.
REAL_T
-
E
.
ESTIMATE
AS
DIFF
,
ROUND
((
E
.
REAL_T
-
E
.
ESTIMATE
)
*
100
/
E
.
ESTIMATE
)
AS
DIFF_PCT
ROUND
((
E
.
REAL_T
-
E
.
ESTIMATE
)
*
100
/
E
.
ESTIMATE
,
3
)
AS
DIFF_PCT
FROM
ESTIMATE_FORMULA
E
ORDER
BY
E
.
SYS
,
E
.
STARTUP
,
E
.
LOAD_IDX
,
E
.
RULE_APP
,
E
.
RESULT
,
DIFF_PCT
;
ORDER
BY
E
.
BENCH
,
E
.
SYS
,
E
.
STARTUP
,
E
.
LOAD_IDX
,
E
.
RULE_APP
,
E
.
RESULT
,
DIFF_PCT
;
-- ============================================================================
-- Count the Number of Wrong Estimates (more than
2s wrong and more than
20%):
-- Count the Number of Wrong Estimates (more than 20%):
-- ============================================================================
CREATE
VIEW
NUM_BAD_ESTIMATES
AS
SELECT
SYS
,
STARTUP
,
LOAD_IDX
,
RULE_APP
,
RESULT
,
COUNT
(
*
)
AS
BAD
_ESTIMATES
,
SUM
(
ABS
(
DIFF
))
AS
ABS_ERR
SELECT
BENCH
,
SYS
,
STARTUP
,
LOAD_IDX
,
RULE_APP
,
RESULT
,
COUNT
(
*
)
AS
BAD
,
SUM
(
ABS
(
DIFF
))
AS
ABS_ERR
FROM
ESTIMATE_ERR
WHERE
ABS
(
DIFF_PCT
)
>
20
GROUP
BY
SYS
,
STARTUP
,
LOAD_IDX
,
RULE_APP
,
RESULT
ORDER
BY
SYS
,
STARTUP
,
LOAD_IDX
,
RULE_APP
,
RESULT
;
GROUP
BY
BENCH
,
SYS
,
STARTUP
,
LOAD_IDX
,
RULE_APP
,
RESULT
ORDER
BY
BENCH
,
SYS
,
STARTUP
,
LOAD_IDX
,
RULE_APP
,
RESULT
;
-- ============================================================================
-- Count the Number of Good Estimates (max. 20% error):
-- ============================================================================
CREATE
VIEW
NUM_GOOD_ESTIMATES
AS
SELECT
BENCH
,
SYS
,
STARTUP
,
LOAD_IDX
,
RULE_APP
,
RESULT
,
COUNT
(
*
)
AS
GOOD
,
SUM
(
ABS
(
DIFF
))
AS
ABS_ERR
FROM
ESTIMATE_ERR
WHERE
ABS
(
DIFF_PCT
)
<=
20
GROUP
BY
BENCH
,
SYS
,
STARTUP
,
LOAD_IDX
,
RULE_APP
,
RESULT
ORDER
BY
BENCH
,
SYS
,
STARTUP
,
LOAD_IDX
,
RULE_APP
,
RESULT
;
-- ============================================================================
-- Evaluate Estimates:
-- ============================================================================
CREATE
VIEW
EVAL_ESTIMATES
AS
SELECT
BENCH
,
SYS
,
STARTUP
AS
S
,
LOAD_IDX
AS
L
,
RULE_APP
AS
A
,
RESULT
AS
R
,
SUM
(
CASE
WHEN
ABS
(
DIFF_PCT
)
<=
20
THEN
1
ELSE
0
END
)
AS
GOOD
,
SUM
(
CASE
WHEN
DIFF_PCT
<
-
20
THEN
1
ELSE
0
END
)
AS
LESS
,
SUM
(
CASE
WHEN
DIFF_PCT
>
20
THEN
1
ELSE
0
END
)
AS
MORE
,
ROUND
(
AVG
(
ABS
(
DIFF_PCT
)))
AS
AVG_ERR
FROM
ESTIMATE_ERR
GROUP
BY
BENCH
,
SYS
,
STARTUP
,
LOAD_IDX
,
RULE_APP
,
RESULT
ORDER
BY
BENCH
,
SYS
,
STARTUP
,
LOAD_IDX
,
RULE_APP
,
RESULT
;
-- ============================================================================
-- Generate C++ Objects with Graph Data and Runtime (for Optimization):
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment