2017-02-13 50 views
0

使用第三方軟件監視Microsoft SQL Server數據庫中的查詢,以下查詢似乎每天執行70000次以上!在liferay上執行的查詢6.2數據庫

select 
TABLE_QUALIFIER = convert(sysname,db_name()), 
TABLE_OWNER = convert(sysname,schema_name(o.schema_id)), 
TABLE_NAME = convert(sysname,o.name), 
TABLE_TYPE = convert(varchar(32), 
rtrim(substring('SYSTEM TABLE   TABLE  VIEW  ', 
(ascii(o.type)-83)*12+1, 
12)) -- 'S'=0,'U'=2,'V'=3 

), 
REMARKS = convert(varchar(254),null) -- Remarks are NULL. 

from 
sys.all_objects o 
where 
o.type in ('S','U','V') and 
has_perms_by_name(quotename(schema_name(o.schema_id)) + '.' +  quotename(o.name), 
'object', 
'select') = 1 and 
charindex(substring(o.type,1,1),@type1) <> 0 and -- Only desired types. 

(@table_name is NULL or o.name like @table_name) and 
(@table_owner is NULL or schema_name(o.schema_id) like @table_owner) 
order by 4, 
1, 
2, 
3 

有沒有人知道這是什麼目的?

回答

1

看着輸出,它似乎是確定它運行的數據庫的對象。它獲取數據庫名稱,模式,所有者和對象名稱,然後將其轉換爲顯示系統表,表或視圖。

看起來好像有些變量正在傳遞給它,所以它很可能查詢特定的對象。

這是來自一個應用程序,如果是的話,它可以成爲安全模型的一部分嗎?如果在查詢之前或之後運行任何一致的查詢,以查看是否可以查看是否觸發它,可以跟蹤嗎?

0

使用程序ExpressProfiler,我跟蹤了上面的查詢,其實是存儲過程中的門戶網站的Miscrosoft SQL Server數據庫的名稱sys.sp_tables的系統。出於某種原因,門戶會自動通過不同的變量多次調用它。

相關問題