2017-02-13 11 views
0

Microsoft SQLサーバーデータベースのクエリを監視するサードパーティのソフトウェアを使用すると、次のクエリは1日あたり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

出力を見ると、実行されているデータベースのオブジェクトを確認しているようです。データベース名、スキーマ、所有者、オブジェクト名が取得され、システムテーブル、テーブル、またはビューのいずれかを表示するよう変換されます。

いくつかの変数がこの中に渡されているように見えるので、特定のオブジェクトをクエリする可能性が高くなります。

これはアプリケーションからのものですか?もしそうなら、それはセキュリティモデルの一部になる可能性がありますか?このクエリの前または後に一貫したクエリが実行されていて、そのクエリをトリガすることができるかどうかを確認できますか?プログラムExpressProfilerを使用して

0

、私は上記のクエリは実際には名前sys.sp_tablesとポータルのMiscrosoft SQL Serverデータベースにストアドプロシージャのシステムだったことをトレースします。なんらかの理由で、ポータルから自動的に異なる変数で何度も呼び出されます。

関連する問題