2017-02-13 8 views
0

Microsoft SQL 서버 데이터베이스에서 쿼리를 모니터링하는 타사 소프트웨어를 사용하면 다음 쿼리가 하루에 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을 사용하여, 위 쿼리가 실제로 이름 sys.sp_tables와 포털의 Miscrosoft SQL Server 데이터베이스에 저장 프로 시저를 시스템이었다 추적. 어떤 이유로 인해 다른 변수로 여러 번 포털에서 자동으로 호출됩니다.