기본적으로 SQL Server에 연결되어 데이터를 삽입/삭제/업데이트하는 perl 프로그램을 실행하는 동안 매우 자주 sp_tables @table_name='NOXXTABLE'
이라고합니다. 우리는 많은 SPID에 대해 전화가 많이 발생한다는 것을 알 수 있습니다.sp_tables 호출이 차단을 야기하는 데 더 많은 시간이 걸림
sp_tables @table_name='NOXXTABLE'
을 SQLserver에서 실행하면 아무런 결과도 반환하지 않음을 알 수 있습니다. 대개 밀리 초 단위로 완료됩니다.
그러나 프로파일 링 후 블로킹 SPID에 대한 특정 SQLText(sp_tables @table_name='NOXXTABLE')
의 런타임을 점검했을 때 0 초에서 1 분까지 다양했으며 동일한 SPID 내에서 매우 자주 호출되었습니다. 많은 시간이 걸리는 sp_tables
에 여러 번 호출되는 SPID의 경우에도 마찬가지입니다.
해결 방법이 있습니까?
감사합니다. bohica! 이 경우 정확히 어디에서 ping이 호출되며, 그 이유는 무엇입니까? 친절하게 여기에 약간의 빛을 던져주세요. select 사이에 sp_tables 호출이 나타납니다. 그래서 여기 어떻게 시간을 적게 줍니까? 테이블 ('', '', 'NOXXTABLE', '')은 DB 연결이 활성 상태인지를 알 수있는 대체 방법입니까? NOXXTABLE이라는 것이 없기 때문에 결과가 반환되지 않기 때문입니다. –
코드 (또는 사용중인 코드)가 ping을 호출하는 위치를 말할 수 없습니다. 내가 당신에게 말하는 것은 DBI ping 메서드가 호출되고 DBD :: ODBC를 사용하는 경우 테이블 NOXXTABLE에서 테이블 호출을 실행하여 ping을 구현하는 것입니다. 인수는 데이터베이스로의 왕복이 필요하다는 것입니다. – bohica