반응형

sp_activeroles :

사용자의 로그인에 부여된 현재 (role) 모두 표시합니다.

sp_addalias:

Adaptive Server 사용자가 데이터베이스에서 다른 사용자 이름으로 인식되는 것을 허용합니다.

sp_addauditrecord :

사용자가 사용자 정의 감사 레코드(주석) 감사 기록에 입력하는 것을 허용합니다.

sp_addaudittable:

감사 기능을 설치한 다른 시스템 감사 테이블을 추가합니다.

sp_addengine :

엔진을 기존 엔진 그룹에 추가하거나, 엔진 그룹이 없으면 엔진 그룹을 만들어 엔진을 추가합니다.

sp_addexeclass :

클라이언트 응용 프로그램, 로그인, 내장 프로시저에 바인드할 있는 사용자 정의 실행 클래스를 만들거나 업데이트합니다.

sp_addextendedproc :

확장 내장 프로시저(ESP) master 데이터베이스에 만듭니다.

sp_addexternlogin :

CIS(Component Integration Services) 통해 원격 서버와 통신할 사용할 대체 로그인 계정과 암호를 만듭니다.

sp_addgroup :

그룹을 데이터베이스에 추가합니다. 그룹은 권한을 부여하거나 취소할 집합적 이름으로 사용됩니다.

sp_addlanguage :

대체 언어의 월과 요일의 이름과 날짜 형식을 정의합니다.

sp_addlogin :

사용자 계정을 Adaptive Server 추가합니다.

sp_addmessage :

내장 프로시저 print raiserror 호출과 sp_bindmsg에서 사용할 있도록 사용자 정의 메시지를 sysusermessages 추가합니다.

sp_addobjectdef :

로컬 테이블과 외부 저장 위치 사이의 매핑을 지정합니다.

sp_add_qpgroup :

Abstract Plan(AP) 그룹을 추가합니다.

sp_addremotelogin : master.dbo.sysremotelogins 엔트리를 추가하여 원격 서버 사용자에게 권한을 부여합니다.

sp_add_resource_limit :

질의나 질의 배치, 트랜잭션을 실행할 로그인이나 응용 프로그램에서 사용할 있는 서버 자원의 양에 대한 제한을 만듭니다.

sp_addsegment :

현재 데이터베이스의 데이터베이스 디바이스에 세그먼트를 정의합니다.

sp_addserver :

원격 서버를 정의하거나 로컬 서버의 이름을 정의합니다.

sp_addthreshold :

데이터베이스 세그먼트에 있는 공간을 모니터하기 위한 임계값을 만듭니다. 세그먼트의 여유 공간이 지정한 수준 아래로 내려가면, Adaptive Server 연관된 내장 프로시저를 실행합니다.

sp_add_time_range :

이름이 지정된 시간 범위를 Adaptive Server 추가합니다.

sp_addtype :

사용자 정의한 데이터 유형을 만듭니다.

sp_addumpdevice  :

덤프 디바이스를  Adaptive Server 추가합니다.

sp_adduser :

사용자를 현재 데이터베이스에 추가합니다.

sp_altermessage :

특정 시스템 정의 메시지나 사용자 정의 메시지를 Adaptive Server 에러 로그에 기록할 있게 하거나 기록할 없게 합니다.

sp_audit :

시스템 보안 담당자가 감사 선택 항목을 구성할 있게 해줍니다.

sp_autoconnect :

이름이 지정된 사용자가 로그인할 자동으로 passthrough 모드로 들어갈 있도록, 특정 사용자에게 원격 서버에 대한  passthrough 연결을 정의해 줍니다.

sp_bindcache :

데이터베이스나 테이블, 인덱스, text 객체, image 객체를 데이터 캐시에 바인드합니다.

sp_bindefault :

사용자 정의 디폴트를 열이나 사용자 정의 데이터 유형에 바인드 합니다.

sp_bindexeclass  :

실행 클래스를 클라이언트 응용 프로그램이나 로그인,, 내장 프로시저와 연관시킵니다.

sp_bindmsg :

사용자 메시지를 참조 무결성 제약 조건이나 검사 제약 조건에 바인드합니다.

sp_bindrule :

규칙을 열이나 사용자 정의 데이터 유형에 바인드 합니다.

locksp_cacheconfig :

데이터 캐시에 대한 정보를 만들거나 구성, 다시 구성, 삭제, 제공을 합니다.

sp_cachestrategy :

테이블이나 인덱스 text 객체, image 객체에 대한 MRU 캐시 대체 전략과 프리페치(대량 /출력) 가능하게 하거나 가능하지 않게 합니다.

sp_changedbowner :

데이터베이스의 소유자를 변경합니다.

sp_changegroup :

사용자 그룹을 변경합니다.

sp_checknames :

7-비트 ASCII 집합에 없는 문자가 이름에 들어 있는지 현재 데이터베이스를 검사합니다.

sp_checkreswords :

Transact-SQL 예약어인 식별자를 검색하여 표시합니다. 서버 이름과 디바이스 이름, 데이터베이스 이름, 세그먼트 이름, 사용자 정의 데이터 유형, 객체 이름, 이름, 사용자 이름, 로그인 이름, 원격 로그인 이름을 검사합니다.

sp_checksource :

컴파일된 객체 소스 텍스트 있는지 검사합니다.

sp_chgattribute :

테이블이나 인덱스의 추후 공간 할당을 위해 max_rows_per_page 값을 변경합니다.

sp_clearpsexe :

sp_setpsexe에서 설정한 클라이언트 응용 프로그램, 로그인, 내장 프로시저의 실행 속성을 지웁니다.

sp_clearstats :

모든 서버 사용자나 지정한 사용자에 대한 계정 기간을 시장합니다. sp_reportstats 실행하여 이전 기간 동안의 통계를 인쇄합니다.

sp_cmp_all_qplans :

모든 Abstract Plan(AP) 개의 Abstract Plan(AP) 그룹에서 비교합니다.

sp_cmp_qplans : 개의 Abstract Plan(AP) 비교합니다.

sp_commonkey :

개의 테이블이나 사이의 자주 조인되는 common 열을 정의합니다.

sp_companion :

Adaptive Server 고가용성(HA) 시스템의 보조 companion으로 구성하고 companion 서버를 failover 모드에서 다른 모드로 이동하는 등의 클러스터 작업을 수행합니다.

sp_configure : 구성 매개변수를 표시하거나 변경합니다.

sp_copy_all_qplans :

Abstract Plan(AP) 그룹의 모든 계획을 다른 그룹으로 복사합니다.

sp_copy_qplan :

Abstract Plan(AP) Abstract Plan(AP) 그룹으로 복사합니다.

sp_countmetadata :

Adaptive Server 인덱스, 객체, 데이터베이스 개수를 표시합니다.

sp_cursorinfo :

사용자 세션에서 활성 중인 특정 커서나 모든 커서에 대한 정보를 보고합니다.

locksp_dboption : 데이터베이스 옵션을 표시하거나 변경합니다.

sp_dbremap :

alter database에서 만든 변경 내용을 Adaptive Server에서 인식하게 만듭니다. Adaptive Server 메시지에서 지시한 경우에만 프로시저를 실행합니다.

sp_depends :

특정 테이블이나 뷰에 종속된 , 트리거, 프로시저와 특정 , 트리거, 프로시저가 종속되어 있는 테이블이나 뷰와 가타은 데이터베이스 객체 종속 관계에 대한 정보를 표시합니다.

sp_deviceattr :

기존 데이터베이스 디바이스 파일의 dsync 설정을 변경합니다.

sp_diskdefault :

사용자가 데이터베이스 디바이스를 지정하지 않은 경우 데이터베이스 디바이스를 데이터베이스 저장소로 사용할 있는지 여부를 지정하거나, create database alter database 명령의 default 지정합니다.

sp_displayaudit : 감사 선택 항목의 상태를 표시합니다.

sp_displaylevel :

sp_configure 출력에 나타나야 Adaptive Server 구성 매개변수를 설정하거나 표시합니다.

sp_displaylogin : 로그인 계정에 대한 정보를 표시합니다.

sp_displayroles :

다른 (role) 부여된 모든 (role) 표시하거나 (role) 전체 계층 트리를 형식으로 표시합니다.

sp_dropalias :

sp_addalias 사용하여 설정했던 가명(alias) 사용자 이름을 삭제 합니다.

sp_drop_all_qplans :

모든 Abstract Plan(AP) Abstract Plan(AP) 그룹에서 삭제합니다.

sp_dropdevice :

Adaptive Server 데이터베이스 디바이스나 덤프 디바이스를 삭제 합니다.

sp_dropengine :

지정한 엔진 그룹에서 엔진을 삭제하거나 해당 엔진이 그룹의 마지막 엔진인 경우 엔진 그룹을 삭제합니다.

sp_dropexeclass : 사용자 정의 실행 클래스를 삭제합니다.

sp_dropextendedproc : Master database에서 ESP 삭제합니다.

sp_dropglockpromote :

데이터베이스나 테이블에서 lock 실행 값을 삭제합니다.

sp_dropgroup : 데이터베이스에서 그룹을 삭제합니다.

sp_dropkey :

syskeys 테이블에서 sp_primarykey sp_foreignkey, sp_commonkey 정의한 키를 삭제합니다.

sp_droplanguage :

서버에서 대체 언어를 삭제하고 해당 행을 master.dbo.syslanguages에서 삭제합니다.

sp_droplogin :

사용자 엔트리를 master.dbo.syslogins에서 삭제하여 Adaptive Server 사용자 로그인을 삭제합니다.

sp_dropmessage : 사용자 정의 메시지를 sysusermessages에서 삭제합니다.

sp_drop_qpgroup : Abstract Plan(AP) 그룹을 삭제합니다.

sp_drop_qplan : Abstract Plan(AP) 삭제합니다.

sp_dropremotelogin : 원격 사용자 로그인을 삭제합니다.

sp_drop_resource_limit :

하나 이상의 자원 제한값을 Adaptive Server에서 삭제합니다.

sp_dropsegment :

데이터베이스에서 세그먼트를 삭제하거나 세그먼트를 특정 데이터베이스 디바이스에서 매핑 해제합니다.

sp_dropserver : 알려진 서버 목록에서 서버를 삭제합니다.

sp_dropthreshold : 세그먼트에서 여유 공간 임계값을 삭제합니다.

sp_drop_time_range :

Adaptive Server에서 사용자 정의 시간 범위를 삭제합니다.

sp_droptype : 사용자 정의 테이터 유형을 삭제합니다.

sp_dropuser : 현재 데이터베이스에서 사용자를 삭제합니다.

sp_dumpoptimize :

데이터베이스 덤프 작업 중에 Backup Server에서 덤프하는 데이터 크기를 지정합니다.

sp_estspace :

테이블과 테이블 인덱스에 필요한 공간의 크기와 인덱스를 만드는데 필요한 시간을 추정합니다.

sp_export_qpgroup :

지정한 사용자와 Abstract Plan(AP) 그룹에 대한 모든 계획을 사용자 테이블로 내보냅니다.

sp_extendsegment :

세그먼트의 범위를 다른 데이터베이스 디바이스로 확장합니다.

sp_familylock :

구문을 병렬로 실행하는 패밀리(조정 프로세스와 작업자 프로세스)에서 보유하는 모든 lock 대한 정보를 보고합니다.

sp_find_qplan :

질의 텍스트나 계획 텍스트에서 파생된 패턴인, Abstract Plan(AP) 찾습니다.

sp_flushstats :

메모리내에서 systabstats 시스템 테이블로 통계를 전달합니다.

sp_forceonline_db :

복구로 인해 오프라인으로 전환되었던 데이터베이스의 모든 페이지에 대한 액세스를 제공합니다.

sp_forceonline_page :

복구로 인해 오프라인으로 전환되었던 페이지에 대한 액세스를 제공합니다.

sp_foreignkey : 현재 데이터베이스의 테이블이나 뷰에 외부키를 정의합니다.

sp_freedll :

ESP 실행을 지원하기 위해 XP Server 메모리에 로드되었던 동적 연결 라이브러리(DLL) 언로드합니다.

sp_getmessage :

print raiserror 문의 sysmessages sysusermessages에서 저장 메시지 문자열을 검색합니다.

sp_grantlogin :

Windows NT 전용으로 통합 보안 모드나 혼합 모드(Named

Pipes 사용하여) 활성화되어 있으면 Adaptive Server (role)이나 default 권한을 Windows NT 사용자 그룹에 할당합니다.

sp_ha_admin :

고가용성(HA) 시스템에서 Sybase failover 구성되어 있는 Adaptive Server 관리 작업을 수행합니다. sp_ha_admin installhavss 스크립트(Windows NT에서는 insthasv) 함께 설치됩니다.

sp_help :

데이터베이스 객체(sysobjects 나열되어 있는 모든 객체) 대한 정보와 Adaptive Server 제공 데이터 유형이나 사용자 정의 데이터 유형에 대한 정보를 보고합니다.

sp_helpartition :

partition 테이블의 partition 대한 페이지와 컨트롤 페이지를 나열합니다.

sp_helpcache :

데이터 캐시에 바운드되어 있는 객체에 대한 정보나 지정한 캐시 크기에 필요한 오버헤드 크기에 대한 정보를 표시합니다.

sp_helpdb :

특정 데이터베이스나 모든 데이터베이스에 대한 정보를 보고합니다.

sp_helpdevice :

특정 디바이스에 대한 정보나 모든 Adaptive Server 데이터베이스 디바이스와 덤프 디바이스에 대한 정보를 보고합니다.

sp_helpextendedproc :

현재 데이터베이스에 등록된 ESP 관련 DLL 파일과 함께 표시합니다.

sp_helpexternlogin :

CIS(Component Integration Services) 전용으로 외부 로그인 이름에 대한 정보를 보고합니다.

sp_helpgroup :

현재 데이터베이스의 모든 그룹에 대한 정보나 특정 그룹에 대한 정보를 보고합니다.

sp_helpindex : 테이블에 만든 인덱스에 대한 정보를 보고합니다.

sp_helpjava :

데이터베이스에 설치되어 있는 Java 클래스와 관련 JAR 대한 정보를 표시합니다.

sp_helpjoins :

조인 대상이 가능성이 있는 개의 테이블이나 뷰의 열을 나열 합니다.

sp_helpkey :

특정 테이블이나 뷰의 Primary , 외부키, common 키에 대한 정보나 현재 데이터베이스의 모든 키에 대한 정보를 보고합니다.

sp_helplanguage : 특정 대체 언어나 모든 언어에 대한 정보를 보고합니다.

sp_helplog :

트랜잭션 로그의 페이지가 들어 있는 디바이스의 이름을 보고합니다.

sp_helpobjectdef :

CIS(Component Integration Services) 전용으로 원격 객체 정의에 대한 정보를 보고합니다. 소유자, 객체, 유형, 정의를 표시합니다.

sp_help_qpgroup : Abstract Plan(AP) 그룹에 대한 정보를 보고합니다.

sp_help_qplan : Abstract Plan(AP) 대한 정보를 보고합니다.

sp_helpremotelogin :

특정 원격 서버의 로그인이나 모든 원격 서버의 로그인에 대한 정보를 보고합니다.

sp_help_resource_limit :

모든 자원 제한값이나 주어진 로그인이나 응용 프로그램에 대한 제한값, 주어진 시간이나 요일에 유효한 제한값, 주어진 범위나 작업의 제한값에 대한 정보를 보고합니다.

sp_helprotect :

데이터베이스 객체, 사용자, 그룹, (role) 대한 권한을 보고합니다.

sp_helpsegment :

현재 데이터베이스의 모든 세그먼트나 특정 세그먼트에 대한 정보를 보고합니다.

sp_helpserver : 특정 원격 서버나 모든 원격 서버에 대한 정보를 보고합니다.

sp_helpsort :

Adaptive Server 기본 정렬 순서와 문자 집합을 표시합니다.

sp_helptext :

시스템 프로시저나 트리거, , 디폴트, 규칙 무결성 검사 제약 조건의 텍스트를 인쇄합니다.

sp_helpthreshold :

현재 데이터베이스의 모든 임계값이나 특정 세그먼트의 모든 임계값과 관련된 세그먼트, 여유 공간 , 상태, 내장 프로시저를 보고합니다.

sp_helpuser :

현재 데이터베이스의 모든 사용자나 특정 사용자에 대한 정보를 보고합니다.

sp_import_qpgroup :

Abstract Plan(AP) 사용자 테이블에서 Abstract Plan(AP) 그룹으로 가져옵니다.

sp_indsuspect :

정렬 순서 변경을 복구 중에 추정으로 표시된 인덱스가 있는지 사용자 테이블에서 검사합니다.

sp_listsuspect_db :

복구 손상으로 인해 오프라인 페이지가 들어 있는 데이터베이스를 모두 나열합니다.

sp_listsuspect_page :

복구 손상으로 인해 현재 오프라인 페이자가 들어 있는 페이지를 모두 나열합니다.

sp_lock : 현재 lock 보유하고 있는 프로세스에 대한 정보를 보고합니다.

sp_locklogin :

사용자가 로그인할 없게 Adaptive Server 계정을 잠그거나 모든 잠궈진 계정의 목록을 표시합니다.

sp_logdevice :

로그 데이터를 같은 디바이스에 가지고 있는 데이터베이스의 트랜잭션 로그를 별개의 데이터베이스 디바이스로 이동합니다.

sp_loginconfig :

Windows NT 전용으로 하나 또는 모든 통합 보안 매개변수의 값을 표시합니다.

sp_logininfo :

Windows NT 전용으로 sp_grantlogin 사용하여 Windows NT 사용자와 그룹에 부여된 모든 (role) 표시합니다.

sp_logiosize :

Adaptive Server에서 현재 데이터베이스의 트랜잭션 로그에 대한 /출력을 사용하는 로그 /출력 크기를 다른 메모리 풀로 변경합니다.

sp_modifylogin :

Adaptive Server 로그인 계정의 Primary database 기본 언어, 기본 (role) 사용이나 전체 이름을 수정합니다.

sp_modify_resource_limit :

제한값을 지정하거나 제한값이 초과했을 취할 조치 또는 둘을 모두 지정하여 자원 제한값을 변경합니다.

sp_modifythreshold :

임계값을 다른 임계값 프로시저와 여유 공간 수준, 세그먼트 이름과 연결하여 수정합니다. sp_modifythreshold 사용하여 마지막 임계값의 세그먼트 이름이나 여유 공간 크기를 변경 없습니다.

sp_modify_time_range :

이름이 지정된 시간 범위와 관련된 시작일, 시작 시간, 종료일, 종료 시간 등을 변경합니다.

sp_monitor : Adaptive Server 대한 통계를 표시합니다.

sp_password :

Adaptive Server 로그인 계정의 암호를 추가하거나 변경합니다.

sp_placeobject :

테이블이나 인덱스의 추후 공간 할당을 특정 세그먼트에 둡니다.

sp_plan_dbccdb :

dbccdb dbccalt 데이터베이스의 적합한 크기를 권장하고 dbccdb dbccalt 적절한 디바이스를 나열하며 캐시 크기와 대상 데이터베이스의 작업자 프로세스의 적당한 개수를 제안합니다.

sp_poolconfig :

데이터 캐시 내에서 메모리 풀에 대한 정보를 제공하고, 크기를 다시 조정하고, 삭제하며 만듭니다.

sp_primarykey : 테이블이나 뷰에 Primary 키를 정의합니다.

sp_processmail :

Windows NT 전용으로 Adaptive Server 받은 편지함의 메시지를 읽고 처리하고 전송하며 삭제합니다.

sp_procqmode : 내장 프로시저, , 트리거의 질의 처리 모드를 표시합니다.

sp_procxmode :

내장 프로시저와 관련된 트랜잭션 모드를 표시하거나 변경합니다.

sp_recompile :

이름이 지정된 테이블을 사용하는 내장 프로시저와 트리거가 다음에 실행될 다시 컴파일되게 합니다.

sp_remap :

4.8 이상과 10.0 이전의 내장 프로시저나 트리거, 규칙, 디폴트, 뷰가 10.0 이상 릴리스와 호환될 있도록 다시 매핑합니다. 릴리스 11.0 업그레이드 절차에서 다시 매핑하는 실패한 11.0 이전 릴리스 객체에 대해서는 sp_remap 사용하십시오.

sp_remoteoption : 원격 로그인 옵션을 표시하거나 변경합니다.

sp_rename :

현재 데이터베이스에 있는 사용자의 구성 객체나 사용자 정의 데이터 유형의 이름을 변경합니다.

sp_renamedb :

데이터베이스 이름을 변경합니다. 시스템 테이터베이스 이름이나 외부 참조 무결성 제약 조건이 있는 테이터베이스의 이름은 변경 없습니다.

sp_rename_qpgroup : Abstract Plan(AP) 그룹의 이름을 바꿉니다.

sp_reportstats : 시스템 사용량에 대한 통계를 보고합니다.

sp_revokelogin :

Windows NT 전용으로 통합 보안 모드나 혼합모드(Named Pipes 사용하여) 활성화되어 있으면 Windows NT 사용자와 그룹에서 Adaptive Server (role) 기본 권한을 취소합니다.

sp_role :

Adaptive Server 로그인 계정에 시스템 (role) 부여하거나 취소합니다.

sp_serveroption : 원격 서버 옵션을 표시가거나 변경합니다.

sp_setlangalias : 대체 언어의 가명(alias) 지정하거나 변경합니다.

sp_setpglockpromote :

데이터베이스나 테이블, Adaptive Server lock 실행 임계값을 설정하거나 변경합니다.

sp_setpsexe :

활성 클라이언트 응용 프로그램과 로그인, 내장 프로시저의 사용자 정의 실행 속성을 바로설정합니다.

sp_set_qplan :

연관된 질의를 변경하지 않고 기존 계획의 Abstract Plan(AP) 텍스트를 변경합니다.

sp_setsuspect_granularity : 복구 장애 결리 모드를 표시하고 설정합니다.

sp_setsuspect_threshold :

복수 , 전체 데이터베이스를 오프라인으로 전환하기 전에 Adaptive Server 지정한 데이터베이스에서 허용할 최대 추정 페이지 개수를 설정합니다.

sp_showcontrolinfo :

엔진 그룹 할당, 바운드 클라이언트 응용 프로그램, 로그인, 내장 프로시저에 대한 정보를 표시합니다.

sp_showexeclass :

지정한 실행 클래스와 연관된 엔진 그룹의 엔진과 실행 크래스 속성을 표시합니다.

sp_showplan :

현재 SQL (또는 같은 배치의 이전 구문) 사용자 연결에 대한 질의 계획을 표시합니다. 질의 계획은 showplan 형식으로 표시됩니다.

sp_showpsexe :

Adaptive Server에서 실행되는 모든 프로세스에 대한 실행 클래스, 현재 우선 순위, 연결을 표시합니다.

sp_spaceused :

현재 데이터베이스의 테이블이나 모든 테이블에서 사용하는 예상 , 예상 데이터 페이지 예상 공간 값을 표시합니다.

sp_syntax :

Transact-SQL 문의 구문, 시스템 프로시저, 유틸리티, 기타 루틴을 Adaptive Server 있는 제품과 해당 sp_syntax 스크립트에 따라 표시합니다.

sp_sysmon : 성능 정보를 표시합니다.

sp_thresholdaction :

임계값이 다른 프로시저와 연관되어 있지 않은 경우, 로그 세그먼트의 사용 가능한 페이지 개수가 마지막 임계값 아래로 떨어지면 자동으로ㅗ 실행합니다. Sybase에서는 프로시저를 제공하지 않습니다.

sp_transactions :

활성 트랜잭션에 대한 정보를 보고합니다.

sp_unbindcache :

데이터베이스나 테이블, 인덱스, text 객체, image 객체를 데이터 캐시에서 바인드 해제합니다.

sp_unbindcache_all :

캐시에 바운드되어 있는 모든 객체를 바인드 해제합니다.

sp_unbindefault :

생성된 디폴트를 열이나 사용자 정의 데이터 유형에서 바인드 해제합니다.

sp_unbindexeclass :

데이터베이스나 테이블, 인덱스, text 객체나 image 객체를 데이터 캐시에서 바인드 해제합니다.

sp_unbindmsg :

사용자 정의 메시지를 제약 조건에서 바인드 해제합니다.

sp_unbindrule :

규직을 열이나 사용자 정의 데이터 유형에서 바인드 해제합니다.

sp_volchanged :

요청한 볼륨 처리를 덤프나 로드 중에 운영자가 수행했다는 것을 Backup Server™ 통보합니다.

sp_who :

모든 현재 Adaptive Server 사용자와 프로세스에 대한 정보, 특정 사용자 또는 프로세스에 대한 정보를 보고합니다.


반응형

강좌 시작 >

준비사항

먼저 그림과 같이 Sybase를 사용할 수 있는 Client-Program을 설치해야 합니다. Oracle을 접근하기 위해서는 Oracle-Client 프로그램을 설치하는 것과 마찬가지입니다. 음.. 준비사항이라고 적기는 했는데 이외에는 별다른 사항은 없네요. (머슥 ㅡㅡ;;)

SyBase 연결

SyBase에 연결하기 위해서는 세가지 정도의 방법이 있습니다.

  1. ODBC Data-Provider For .NET
  2. OLEDB Provider For .NET
  3. ASA Provider(From SyBase)

OLEDB는 .NET Framework 1을 설치하면 SQL Data-Provider For .NET과 같이 기본적으로 설치되는 드라이버입니다. 기존의 두 드라이버 이외에 .NET에는 ODBC 와 Oracle 버전이 추가로 제공되었는데, 이번에 .NET Framework 1.1이 나오면서 기본 드라이버로 추가되었습니다.

마지막으로 3번은 SyBase에서 제공하는 .NET용 Data-Provider인데, www.sybase.com에서 다운로드 받을 수 있습니다.

먼저 ODBC를 통해서 Sybase에 연결하는 방법을 알아보겠습니다. ODBC 설정을 위해서 그림과 같이 ODBC관리자를 열고,

해당 정보를 입력합니다.

연결 테스트를 통해 연결을 확인합니다.

확인 되었다면 CSharp을 통해서 연결해 보죠.

Code1. ODBC Connection

OdbcConnection Conn=null;
Conn=new OdbcConnection("DSN=arnold_connection");

기존의 Com에서 ODBC를 사용해서 연결했던 내용과 별 차이가 없네요. OLEDB를 통해서도 Connection을 연결하는 방법은

Code2. OLEDB Connection

OleDbConnection Conn=new OleDbConnection("Provider=ASAProv.70;Data Source= arnold;"+"UserID=arnold;Password=pwd;");

음. 별 차이가 없군요. ㅡㅡ;;; SyBase에서 제공하는 ASA를 통해서 접근하는 방식은 OLEDB를 접근하는 방식과 Connection-String은 동일합니다. 단지 OLEDB대신 ASA이라는 접두사가 붙습니다.

Provider별 성능을 비교한 문서가 없어서 정확히 말씀은 드리지 못하겠지만 일반적인 경우를 생각해 볼 때 SyBase를 통해 제공되는 provider를 사용하는 것을 권하고 싶네요.

Stored-Procedure 사용하기

저장 프로시저 사용의 경우 MSSQL이나 Oracle을 사용하는 경우와 별로 차이가 없습니다. 한가지 주의하실 점은 ODBC나 ASA Driver를 사용하는 경우에는 SP를 호출하는 부분의 Syntax가 조금 차이가 있다는 점이죠. SyBase에만 해당하는 특별한 사항은 아니고, ODBC를 통해서 접근하는 경우에 공통적인 사항입니다.

Code3. Call SP OdbcCommand Comm=new OdbcCommand("{call test_procedure(?,?)} ",Conn);
// Comm에 Parameter할당~

MSSql을 사용 시 Sp명만 적어주고, Parameter를 할당하는 것과는 조금 차이가 있습니다. ?를 사용해서 Parameter의 위치를 미리 지정하고 Parameter를 Command에 할당해서 사용하는 방식입니다.

문제는 지금부터 인데 다음과 같은 저장 프로시저가 있다고 생각해 보죠.

Code4. Stored-Procedure

create procedure test1(@code char(05),
                                      @out int out)
begin
     if @code=null then
         return (-1); 
     end if;

      select count(*) into @out from test;

      if @code='all' then
          select *
          from test;
     else
          select *
          from test
         where code=@code;
     end if;
     return(100);
end;

프로시저에서는 세 가지 값을 Client에게 리턴합니다.

  1. output-parameter
  2. return value
  3. select를 통한 결과

2)번의 경우는 프로시저가 정상적으로 실행되었는지를 확인하는 값입니다. 위의 프로시저를 호출하는 코드는 다음과 같습니다.

Code5. Call SP2

OdbcDataAdapter Adapter=new OdbcDataAdapter();
OdbcCommand Comm=new OdbcCommand("{?=call sp_test(?,?)} ",Conn);
Comm.CommandType=CommandType.StoredProcedure;
// Parameter Setting
Comm.Parameters.Add("return",OdbcType.Real,4);
Comm.Parameters["return"].Direction=ParameterDirection.ReturnValue;

Comm.Parameters.Add("@code",OdbcType.VarChar,5);
Comm.Parameters["@code"].Value=strCode;

Comm.Parameters.Add("@out",OdbcType.Real,4);
Comm.Parameters["@out"].Direction=ParameterDirection.Output;

음.. 문제가 발생하는 부분은 위와 같이 동시에 세 개를 리턴 받는 경우입니다. 다음은 테스트 한 결과입니다.(테스트 시나리오 별로 각 각의 프로시저 작성)

  1. output parameter만 받는 경우: 정상적으로 리턴.
  2. return value만을 받는 경우: 정상적으로 리턴.
  3. output + return value를 받는 경우: 정상적으로 리턴
  4. select 만을 받는 경우: 정상적으로 리턴
  5. output + select: select만 리턴됨.
  6. return + select : select만 리턴됨
  7. output + select + return : select 만 리턴됨

즉, 요약해 보면 select와 output/return값은 동시에 출력되지 않는다는 결과입니다. 동일한 프로시저를 MSSQL에서 작성해서 테스트 해보면 세 개의 값이 정상적으로 리턴 되는 것을 확인하였습니다.

특정 Provider의 문제인가 싶어서 앞에서 열거한 Provider별로 모두 테스트를 해보았지만, 결과는 동일 (ㅡㅡ);;. SyBase에 문의해 본 결과 ASA 7.0 Engine 의 경우에는 아직 .NET에서 certified되지 않은 상태라고 하네요. 지용군님을 비롯한 주위분들 얘기를 들어보면 Provider에 따라서 위의 기능이 제공되지 않을 수도 있다고 하는군요. 물론 DB자체에서는 실행이 되겠지만 DB에서 실행되는 것과 특정 Provider를 통해 제공되는 기능이 꼭 같다고 볼 수는 없다는 것이죠.

이러한 문제 때문에 조금 우회한 방식으로 처리를 하게 되었습니다.

Return과 Output Parameter를 사용하는 대신 Select 구문으로 대치해서 DataSet에 담는 방식으로 처리를 했습니다. 즉, Output Parameter나 Return 구문은 Select 구문으로 치환해서 결과적으로 DataSet에는 3개의 테이블이 들어가 있는 것이죠.

.NET에서 Sybase 접근방식에 대해서 간단히 알아보았습니다. 그럼 ㅃㅃ2

반응형

select col1, col2, col3 from tab order by col1, col2

                 

         compute sum(col3) by col1

+ Recent posts