Запрос и отображение результатов Каждое количество 'X' минут из базы данных Oracle - PullRequest
1 голос
/ 17 июля 2011

Можно ли, например, запросить базу данных Oracle 10g и отображать результаты в динамически обновляемом html-файле каждые 3 минуты?

Вот мое затруднение: у меня есть несколько запросов, которые я ЛЮБЛЮ, чтобы отобразить результаты всей организации на базовой веб-странице HTML с некоторым CSS. Проблема в том, что я НЕ хочу, чтобы пользователь мог постоянно обновлять страницу в своем браузере и, таким образом, сильно перегружать базу данных. У меня нет проблем с написанием запросов или написанием HTML и CSS, необходимых для отображения таблиц. Это почти как если бы я хотел запрашивать, экспортировать результаты в XML каждые 3 минуты и постоянно иметь файл HTML или PHP, который указывает на динамически обновляемый файл XML. Я открыт и для других вариантов ...

У меня есть базовый пользовательский доступ с БД Oracle ... ничего похожего на администратора. У меня есть доступ к серверу, и я имею опыт работы с PHP, PL / SQL и HTML. Возможно, мне нужно было бы перейти на язык программирования более низкого уровня, такой как Python? Я застрял здесь. Буду признателен за любую помощь!

Ответы [ 2 ]

2 голосов
/ 17 июля 2011

вы также можете выполнять Ajax-запрос каждые 3 минуты, используя функцию setTimeout ().

Используя jQuery framework

$(document).ready(function() {
    setTimeout("getFeed()", 180000); //180000 = 3 minutes in milliseconds
});

function getFeed() {
    //ajaxRequest here
}

Для получения дополнительной информации о ajax вы можете перейти сюда: http://api.jquery.com/jQuery.ajax/

1 голос
/ 18 июля 2011

Настройте материализованное представление (mv), укажите ваше приложение на этом mv, а затем настройте задание планировщика, чтобы обновлять его на любой частоте.

См. dbms_scheduler для настройки заданий планировщика в Oracle.

Одно замечание: вы можете захотеть сделать atomic_refresh => true для удаления / вставки в mv вместо усечения / вставки (если atomic_refresh => false,в mv будет 0 строк до завершения обновления).

Простой пример создания mv:

create materialized view MY_MV
tablespace MY_TS
build immediate
refresh complete on demand
with primary key
as
SELECT a.foo, b.bar
from table_a a, table_b b
where a.col1 = b.col2
and a.baz='BLAH'
;

Пример вызова обновления:

dbms_mview.refresh('MY_MV', 'C', atomic_refresh=>true);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...