CC-4620: Now Playing page loading is very slow because 1M records in cc_schedule table
-fixed
This commit is contained in:
parent
a73aef6cd8
commit
4daaa776e2
|
@ -263,6 +263,15 @@ SQL;
|
|||
global $CC_CONFIG;
|
||||
$con = Propel::getConnection();
|
||||
|
||||
$p_start_str = $p_start->format("Y-m-d H:i:s");
|
||||
$p_end_str = $p_end->format("Y-m-d H:i:s");
|
||||
|
||||
|
||||
//We need to search 24 hours before and after the show times so that that we
|
||||
//capture all of the show's contents.
|
||||
$p_track_start= $p_start->sub(new DateInterval("PT24H"))->format("Y-m-d H:i:s");
|
||||
$p_track_end = $p_end->add(new DateInterval("PT24H"))->format("Y-m-d H:i:s");
|
||||
|
||||
$templateSql = <<<SQL
|
||||
SELECT DISTINCT sched.starts AS sched_starts,
|
||||
sched.ends AS sched_ends,
|
||||
|
@ -288,12 +297,12 @@ SQL;
|
|||
$filesJoin = <<<SQL
|
||||
cc_schedule AS sched
|
||||
JOIN cc_files AS ft ON (sched.file_id = ft.id
|
||||
AND ((sched.starts >= '{$p_start}'
|
||||
AND sched.starts < '{$p_end}')
|
||||
OR (sched.ends > '{$p_start}'
|
||||
AND sched.ends <= '{$p_end}')
|
||||
OR (sched.starts <= '{$p_start}'
|
||||
AND sched.ends >= '{$p_end}'))
|
||||
AND ((sched.starts >= '{$p_track_start}'
|
||||
AND sched.starts < '{$p_track_end}')
|
||||
OR (sched.ends > '{$p_track_start}'
|
||||
AND sched.ends <= '{$p_track_end}')
|
||||
OR (sched.starts <= '{$p_track_start}'
|
||||
AND sched.ends >= '{$p_track_end}'))
|
||||
)
|
||||
SQL;
|
||||
|
||||
|
@ -315,12 +324,12 @@ SQL;
|
|||
$streamJoin = <<<SQL
|
||||
cc_schedule AS sched
|
||||
JOIN cc_webstream AS ws ON (sched.stream_id = ws.id
|
||||
AND ((sched.starts >= '{$p_start}'
|
||||
AND sched.starts < '{$p_end}')
|
||||
OR (sched.ends > '{$p_start}'
|
||||
AND sched.ends <= '{$p_end}')
|
||||
OR (sched.starts <= '{$p_start}'
|
||||
AND sched.ends >= '{$p_end}'))
|
||||
AND ((sched.starts >= '{$p_track_start}'
|
||||
AND sched.starts < '{$p_track_end}')
|
||||
OR (sched.ends > '{$p_track_start}'
|
||||
AND sched.ends <= '{$p_track_end}')
|
||||
OR (sched.starts <= '{$p_track_start}'
|
||||
AND sched.ends >= '{$p_track_end}'))
|
||||
)
|
||||
LEFT JOIN cc_subjs AS sub ON (ws.creator_id = sub.id)
|
||||
SQL;
|
||||
|
@ -358,12 +367,12 @@ SELECT showt.name AS show_name,
|
|||
JOIN cc_show AS showt ON (showt.id = si.show_id)
|
||||
WHERE si.modified_instance = FALSE
|
||||
$showPredicate
|
||||
AND ((si.starts >= '{$p_start}'
|
||||
AND si.starts < '{$p_end}')
|
||||
OR (si.ends > '{$p_start}'
|
||||
AND si.ends <= '{$p_end}')
|
||||
OR (si.starts <= '{$p_start}'
|
||||
AND si.ends >= '{$p_end}'))
|
||||
AND ((si.starts >= '{$p_start_str}'
|
||||
AND si.starts < '{$p_end_str}')
|
||||
OR (si.ends > '{$p_start_str}'
|
||||
AND si.ends <= '{$p_end_str}')
|
||||
OR (si.starts <= '{$p_start_str}'
|
||||
AND si.ends >= '{$p_end_str}'))
|
||||
ORDER BY si_starts,
|
||||
sched_starts;
|
||||
SQL;
|
||||
|
|
|
@ -423,8 +423,7 @@ class Application_Model_ShowBuilder
|
|||
}
|
||||
|
||||
$scheduled_items = Application_Model_Schedule::GetScheduleDetailItems(
|
||||
$this->startDT->format("Y-m-d H:i:s"), $this->endDT->format(
|
||||
"Y-m-d H:i:s"), $shows);
|
||||
$this->startDT, $this->endDT, $shows);
|
||||
|
||||
for ($i = 0, $rows = count($scheduled_items); $i < $rows; $i++) {
|
||||
|
||||
|
|
Loading…
Reference in New Issue