計算機三級數據庫設計與應用題

設某全國性的運輸企業創建了大型OLTP系統,並在該系統之上創建了數據倉庫。OLTP系統和數據倉庫中有以下數據表:
運輸明細表(運輸單ID,發送站ID,終到站ID,貨物ID,貨物重量,運輸價格,發貨日期)
彙總表1(發送站ID,終到站ID,貨物ID,發貨日期,總重,總運價)
彙總表2(發送站ID,終到地區ID,貨物ID,發貨日期,總重,總運價)
彙總表3(發送站ID,終到站ID,貨物ID,發貨月份,總重,總運價)
彙總表4(發送地區ID,終到地區ID,貨物類別ID,發貨日期,總重,總運價)
該企業管理的貨運站約有100個,貨物約有500種共10類,各彙總表都建有主碼,且各表有合理的維護策略,在每次維護後數據能保持一致。設有視圖V,該視圖的訪問頻率很高,其查詢結果模式爲(發送地區ID,終到站ID,發貨月份,總重,總運價),該視圖現以彙總表1爲計算數據源。經監控發現,彙總表1的被訪問頻率太高,致使系統總體性能降低,而其它彙總表被訪問頻率較低。在不增長彙總表和索引的狀況下,請給出一個改善系統服務性能的優化方案,並簡要說明理由。ide

參考答案:
因爲彙總表1和視圖的模式訪問頻率都很高,並且視圖的數據源來自彙總表1,又由於其餘彙總表的訪問頻率較低,因此只須要將視圖的數據源綁定爲彙總表3,由於彙總表3也能夠知足視圖的輸出模式。這樣不只提高了彙總表3的數據訪問率,並且下降了彙總表1的數據訪問率,系統性能和服務性能獲得了很大的優化。又由於貨物約有500種,共10類,能夠再創建一個視圖綁定數據源爲彙總表4,這樣就能夠充分利用匯總表4的數據信息,從而能夠進一步完善系統的性能的優化。性能

設有商品表(商品號,商品名,單價)和銷售表(銷售單據號,商品號,銷售時間,銷售數量,銷售單價)。其中,商品號表明一類商品,商品號、單價、銷售數量和銷售單價均爲整型。
請編寫查詢某年某商品的銷售總毛利的存儲過程,毛利=銷售數量×(銷售單價-單價)。要求商品號和年份爲輸入參數,總毛利用輸出參數返回。優化

參考答案:
CREATE PROCEDURE PRODUCT @商品號 int,@年份 int,@毛利 int output
AS
DELCARE
@某商品銷售量 int,@某商品進價 int,@某商品銷售單價 int
BEGIN
Select @某商品進價=單價 from 商品表 where@商品號=商品號
Select @商品銷售單價=銷售單價,@某商品銷售量=count(
from 銷售表 where@商品號=商品號 and銷售時間=@年份
IF @某商品進價 is NULL THEN
ROLLBACK;
RETURN;
END IF;
IF @某商品銷售單價 isNULL THEN
ROLLBACK;
RETURN;
RNDIF;
SET @毛利=(@某商品銷售單價-@某商品進價)
@某商品銷售量
GO索引

相關文章
相關標籤/搜索