ODBC 동작
ODBC 드라이버를 테스트한 후 이 드라이버를 사용하여 다양한 클라이언트 응용 프로그램에서 인스턴스 데이터베이스를 쿼리할 수 있습니다.
ODBC 집계 함수
ODBC 드라이버는 데이터를 다운로드하고 집계 함수를 로컬로 적용하려고 시도합니다. ODBC 드라이버는 다음과 같은 집계 함수를 지원합니다.
- 카운트
- 합계
- 최소
- 최대
- 평균
집계 웹 서비스 플러그인을 활성화하여 ODBC 드라이버를 통해 집계 쿼리의 성능을 향상시킵니다.
ODBC 날짜 및 시간 값
인스턴스와 ODBC 드라이버가 설치된 컴퓨터는 서로 다른 두 시간대를 사용할 수 있습니다. ODBC 드라이버에서 반환된 날짜 및 시간 값은 ServiceNow 인스턴스 시간대가 아니라 드라이버를 사용하는 애플리케이션의 현지 시간대입니다.
인스턴스와 ODBC 드라이버를 호스트하는 컴퓨터 모두에 대해 정확한 시간대로 쿼리해야 합니다. GlideRecord는 인스턴스 시간대를 기준으로 필터링을 수행하고, ODBC 클라이언트는 Windows 시간대를 기준으로 필터링합니다.
예를 들어 인스턴스가 CST(중부 표준시)에 있고 PST(태평양 표준시)에 있는 컴퓨터에 ODBC 드라이버가 설치되어 있습니다. 인시던트가 2014-05-20 10:00:00에 인스턴스에 생성되며, 인시던트가 생성된 시간은 두 시간대의 사용자에 대해 UI에 10:00:00 으로 표시됩니다. 그러나 생성 날짜 및 시간별로 이 인시던트를 성공적으로 쿼리하려면 PST의 컴퓨터 사용자가 2014-05-20 10:00:00 대신 2014-05-20 08:00 : 00을 쿼리해야 합니다.
기간 및 타이머 유형 필드는 ODBC 버전 1.0.10부터 UTC 표준 시간대를 사용하여 반환됩니다. 이 변경에 대한 자세한 내용은 KB0583982 참조하세요.
ODBC 표시 값
ODBC 표시 값을 사용하고 사용하는 방법에 대한 몇 가지 예는 다음과 같습니다.
- 선택 및 참조 열의 값 표시:
선택, 참조, 기간 또는 타이머 유형의 열을 쿼리할 때 표시 값을 포함하는 프리픽스
dv_가 있는 추가 열을 사용할 수 있습니다. 예를 들어, sys_user 테이블에 dv_caller_id 다시 요청하지 않고 인시던트 기록에서 참조 필드의 sys_user.name 표시 값을 반환하도록 선택할 수 있습니다.그림 1. 표시 값 반환 - 필터 조건에 값 표시:
표시 값은 필터 조건에서도 사용할 수 있습니다. ODBC 드라이버는 쿼리 조건을 최적화하고 서버에서 필터를 처리합니다(예: dv_caller_id 필드 이름을 사용하여 인시던트의 caller_id 필드에 대한 sys_user 표시 값 쿼리).
그림 2. 필터 조건에 값 표시 - 집계 쿼리에 값 표시:
집계 쿼리는 group by 또는 where 절에 표시 값을 지정하는 경우에도 활용할 수 있습니다(예: 인시던트의 caller_id 필드에서 그룹화 및 이에 대한 필터 지정). 쿼리는 서버로 전달되어 최적화됩니다.
그림 3. 집계 쿼리에 값 표시
테이블 및 열 이름 쿼리
쿼리 사용자의 읽기 ACL을 기반으로 접근 가능한 테이블 및 열 목록을 가져올 수 있습니다.
- 다음 쿼리는 쿼리하는 사용자에게 읽기 권한이 있는 모든 테이블의 이름을 반환합니다.
oa_tables에서 * 선택; - 쿼리할 테이블의 이름을 알고 나면 사용자에게 읽기 권한이 있는 모든 열의 이름을 쿼리할 수 있습니다. 쿼리하는 사용자는 테이블과 열 모두에 대한 읽기 권한이 있어야 합니다.
table_name='table_name'인 oa_columns에서 *를 선택합니다.
ODBC 호출을 읽기 전용 복제본으로 라우팅
쿼리 라우팅은 기본 DB에서 수많은 DB CPU 주기를 수행하는 SELECT 쿼리에 대한 기본 데이터베이스의 부하를 제거하기 위해 수행됩니다. 자세한 내용은 ServiceNow 읽기 복제본 데이터베이스 소개를 참조하십시오.
ODBC 호출을 읽기 전용 복제본으로 라우팅하려면 ODBC를 true로 설정합니다.