2009-04-29 32 views
1

我目前正在調查.NET/Oracle應用程序中的一些性能問題。ADO.NET OracleCommandBuilder性能問題

我已經運行Oracle跟蹤文件,我已經注意到了,下面的查詢被調用了很多,使用了大量的資源:

select ac.constraint_name key_name, acc.column_name key_col,1 
from all_cons_columns acc, all_constraints ac 
where acc.owner = ac.owner 
and acc.constraint_name = ac.constraint_name 
and acc.table_name = ac.table_name 
and ac.constraint_type = 'P' 
and ac.owner = user 
and ac.table_name = :TableName 
order by acc.constraint_name 

我已經確定,這個查詢不被稱爲從應用程序代碼,它可以由ADO.NET生成嗎?該應用程序使用OracleCommandBuilders。

回答

0

是的,我期望的是OracleCommandBuilders這樣做:它找出哪些列形成給定表的主鍵。它需要執行此操作(以及其他元數據選擇)來爲您的應用程序生成SQL語句。

+0

感謝和遲到的反應道歉(我已離開)。 我們能夠通過減少正在創建的OracleCommandBuilders數量來提高應用程序的性能。在少數情況下,命令製造者正在被創建,以防萬一,甚至沒有被使用。 瞭解這一點很有用。 – LauraB 2009-05-15 16:27:11