2013-02-07 70 views
0

我有一個關於Oracle數據庫性能爲每個兩種情況的問題: -一個oracle數據庫的用戶或在asp.net中使用多個用戶

背景: 我開發企業使用的Oracle asp.net業務應用數據庫

之一:

我做一個數據庫用戶,並使用該用戶asp.net應用程序的連接字符串中連接做一些業務邏輯時,DB,所以即使有二十個最終用戶使用asp.net應用程序,然後所有人都連接到數據庫作爲一個用戶

二:

我讓多個數據庫用戶(2 - 5用戶),並利用它們在連接字符串中的池,以便即使有二十個終端用戶同時使用asp.net應用程序,那麼不是所有連接到數據庫作爲一個用戶

什麼是更好的

+0

這沒有什麼區別,如果你有來自同一個用戶二十個通話或二十個不同的用戶提供每一個會話。這個數字聽起來太低,本身就是一個問題,但也許二十個人都在同時進行緊張的工作。您是否已經在使用連接池? –

回答

0

我不知道有關甲骨文公司的細節......但一般來說,一個好的模型如下:

  1. 創建多個數據庫用戶,EA具有不同級別的數據庫訪問權限,具體取決於他們的角色。這些數據庫用戶不符合實際的用戶,而不是它們所對應的角色,大概是4:完全進入創建/刪除/更新表等,寫訪問更新的表,讀取訪問從表中選擇,執行存儲過程和函數。

  2. 用於向您的ASP.NET應用要求的數據的任何類型的修飾,在存儲過程中封裝此操作。基本上你在存儲過程級別編寫一個數據訪問接口。

  3. 創建一個「stored_procedure_executor」分貝用戶,其訪問只允許執行某些存儲過程(和功能)。該用戶無法直接從表中訪問CREATE/DROP/UPDATE/SELECT。

  4. 在您的ASP.NET應用程序中,您只需要爲「stored_procedure_executor」db帳戶存儲/提供連接字符串(db用戶登錄信息)。

  5. 在開發,維護和支持過程中,您需要能夠直接創建/刪除/更新/選擇,爲此您可以創建具有適當訪問級別的其他數據庫用戶。但是,您將使用db管理工具中的這些db帳戶,而不是通過ASP.nET。因此,登錄信息將永遠不需要暴露在ASP.NET級別。

這主要是由安全問題爲導向,同時也因爲它迫使你去思考方式/圖案,其中的數據將被訪問可以提高性能,從而可以優化的兩個結構數據庫,以及最常用的查詢(嵌入在存儲過程中)的實現。

+0

這很好,但我的情況是:當20個最終用戶同時運行應用程序時,我觀察到性能的下降,所以這是因爲我將所有的db作爲db的單個用戶工作,或者可以通過使用多個用戶來增強 – mustafak26

0

這是很好的,但我的情況是:我觀察到的性能下降時,在同一時間20最終用戶運行的應用程序,所以這一點,因爲我盡我所有的數據庫工作爲DB單個用戶或可以通過使用多個提升用戶????????????????????????

+0

This應該是對原始問題的評論或編輯。 –

+0

這不提供問題的答案。要批評或要求作者澄清,在他們的帖子下留下評論 - 你可以隨時評論你自己的帖子,一旦你有足夠的[聲譽](http://stackoverflow.com/faq#reputation),你將能夠[評論任何帖子](http://stackoverflow.com/privileges/comment)。 –

相關問題