所有的,我有一個網頁從4個Oracle數據庫的4-6個表中加載數據,每個數據庫需要大約10個模式。我所擁有的設置是一個需要在頁面的頂部,如:PHP:同時查詢多個數據庫以改善加載時間
<?php
require_once('src/connects_client1.php');
require_once('src/connects_client2.php');
require_once('src/connects_client3.php');
require_once('src/connects_client4.php');
?>
每個這些文件包含一個連接字符串,如:
$connClient = oci_pconnect("Login", "Password", "//database:1521");
等一系列的查詢和執行,如:
$dailystatusClientSCHEMA = oci_parse($connClient, 'select * from OPS$SCHEMA.DAILY_STATUS order by table_name');
oci_execute($dailystatusClientSCHEMA);
這是那麼一個基於Jquery的樹視圖與一系列無序列表的和PHP foreach循環,打印數據的每行適當地對查詢結果的一部分。
某些結果集包含一千行以上的數據。這可以工作,並以可用格式顯示數據。
問題是加載需要1分52秒。這家公司的最終用戶認爲這太長了,坦率地說,我認爲這也太長了。我不是一個網絡開發人員,但這個項目對我來說是最合乎邏輯的。
是否有任何方法可以強制所有查詢以更同步的方式加載,以便數據可以更快地返回?這是一個非常快速的數據庫雲服務器環境,所以我不相信數據庫有任何瓶頸,並且Web服務器在任何時候都有輕負載,所以我不認爲這是有限制的,僅僅是我已經構建這一頁。
我真的很感謝這個人可能提供的任何解決方案。
謝謝。
也許將腳本的不同部分從查詢映射到頁面中的任何其他位置,以找出瓶頸所在。它可能是查詢,拉取結果集,甚至只是在等待jquery數據表加載數據。查詢數據可能會更快,將數據保存到會話並通過客戶端的ajax進行分頁。不過,無論哪種方式,首先是使用microtime進行基準測試,找出造成瓶頸的因素並專注於此。 –