-
SQL-SERVER SYSTEM TABLE2IT/DB 2024. 10. 8. 05:33728x90반응형
시스템 테이블은 SQL Server 데이터베이스의 구조와 작동 방식에 대한 중요한 정보를 제공합니다. 이러한 테이블은 데이터베이스의 관리, 성능 모니터링 및 다양한 시스템 작업에 필요한 핵심 정보를 포함하고 있습니다.
SQL Server 시스템 테이블 개요
SQL Server 시스템 테이블은 주로 내부적으로 사용되며, 데이터베이스 엔진에 의해 관리되고 각종 메타데이터(데이터에 대한 데이터)를 저장합니다. 여기에는 테이블 정의, 인덱스, 사용자 권한, 트랜잭션 정보 등 다양한 데이터가 포함되어 있습니다. 기본적으로 이러한 시스템 테이블은 사용자에게 노출되지 않지만, SQL Server의 여러 시스템 뷰를 통해 접근할 수 있습니다.
시스템 테이블의 종류
- 메타데이터 테이블: 테이블, 열, 인덱스 및 기타 객체에 대한 정보를 포함합니다. 예를 들어 sys.tables, sys.columns 등이 있습니다.
- 보안 테이블: 사용자와 역할에 대한 정보를 제공합니다. sys.database_principals와 같은 테이블이 포함됩니다.
- 성능 테이블: 시스템 성능 및 동작 상태에 대한 정보를 저장합니다. 예를 들어 sys.dm_exec_requests와 같은 뷰가 있습니다.
TRUNCATE와 DELETE의 차이
SQL Server에서 데이터를 삭제할 때 일반적으로 DELETE와 TRUNCATE 명령을 사용하게 됩니다. 이 두 명령어는 모두 데이터를 삭제하지만 그 동작 방식과 결과는 상당히 다릅니다.
- TRUNCATE TABLE: 이 명령어는 지정된 테이블의 모든 행을 빠르고 효율적으로 삭제합니다. WHERE 절을 사용할 수 없어서 모든 데이터가 일괄 삭제됩니다. 또한 TRUNCATE는 각 행에 대한 로그를 기록하지 않기 때문에 대량의 데이터를 삭제할 때 성능이 뛰어납니다. 하지만 이 작업은 롤백이 불가능하므로 주의해야 합니다. 예를 들어, 트랜잭션 로그에 기록되지 않은 상태에서 모든 행이 영구적으로 제거됩니다.
- DELETE FROM: 반면, 이 명령어는 특정 조건에 따라 데이터를 삭제할 수 있습니다. WHERE 절을 사용하여 특정 조건을 만족하는 데이터만 삭제할 수 있게 해줍니다. 이는 더 유연하지만, 각 행을 삭제할 때마다 로그가 기록되므로 성능 저하를 초래할 수 있습니다.
ALTER 명령어의 사용
SQL Server에서 ALTER 명령어는 기존 데이터베이스 객체의 속성을 변경하는 데 사용됩니다. ALTER TABLE을 사용하여 테이블 구조를 수정할 수 있으며, 예를 들어 열(column)의 추가, 삭제, 또는 수정이 가능합니다. 다음은 기본적인 구문 예시입니다:
-- 열 추가 ALTER TABLE Employee ADD Birthday DATE; -- 열 삭제 ALTER TABLE Employee DROP COLUMN Birthday;
이와 같이 SQL Server 시스템 테이블과 관련된 정보는 데이터베이스 관리와 성능 운영에 필수적입니다. 시스템 테이블은 데이터베이스의 상태를 이해하고, 최적화 및 유지 관리 작업을 수행하는 데 필요한 기초 자료를 제공합니다.
syscomments (all databases)
Contains entries for each view, rule, default, trigger, CHECK constraint, DEFAULT constraint, and stored procedure. The text field contains the original SQL definition statements. Since text is often longer than 255 characters, entries often span rows. Each object can occupy as many as 255 rows.
Column Datatype Description id int Object ID to which this text applies. number smallint Number within procedure grouping, if grouped. 0 for nonprocedure entries. colid tinyint Row sequence number for object definitions longer than 255 characters. texttype smallint 0 User-supplied comment (users can add
entries that describe an object or column)
1 System-supplied comment (for views, rules,
defaults, triggers, and stored procedures)
4 Encrypted comments (applies to
procedures, triggers and views)language smallint Reserved. text varchar(255) Actual text of the SQL definition statement. sysconfigures (master database only)
Contains one row for each configuration option that can be set by a user. The sysconfigures table contains the configuration options that were defined before the latest SQL Server startup, plus any dynamic configuration options that were set since the latest SQL Server startup.
Column Datatype Description config smallint Configuration variable number value int User-modifiable value for the variable (being used by SQL Server only if RECONFIGURE has been executed) comment varchar(255) Explanation of the configuration option status smallint Bitmap indicating the status for the option:
1 Dynamic (The variable takes effect
when the RECONFIGURE statement
is executed.)
2 Advanced (The variable is displayed
only when the 'show advanced
option' is set.)sysdatabases (master database only)
Contains one row for each database on SQL Server. When SQL Server is initially installed, sysdatabases contains entries for the master database, the model database, and the tempdb database. The status column values are additive when more than one option is set or database condition applies.
Column Datatype Description name varchar(30) Name of the database. dbid smallint Database ID. suid smallint Server user ID of database creator. mode smallint Used internally for locking a database while it is being created. status smallint Status bits, some of which can be set by the user with the sp_dboption system stored procedure (READ ONLY, DBO USE ONLY, SINGLE USER, and so on):
2 Database is in transition
4 select into/bulkcopy; set with
sp_dboption
8 trunc. log on chkpt; set with
sp_dboption
16 no chkpt on recovery; set
with sp_dboption
32 Crashed while the database
was being loaded; instructs
recovery not to proceed
64 Database not recovered yet
128 Database is in recovery
256 Database is suspect; cannot be
opened or used in its present
state
1024 read only; set with
sp_dboption
2048 dbo use only; set with
sp_dboption
4096 single user; set with
sp_dboption
8192 Database being checkpointed
16384 ANSI null default; set with
sp_dboption
32768 Emergency modeversion smallint Internal version number of the SQL Server code with which the database was created. logptr int Pointer to the transaction log. crdate datetime Creation date. dumptrdate datetime Date of the last DUMP TRANSACTION. category int Used for publication and subscription databases. sysdevices (master database only)
Contains one row for each disk dump device, diskette dump device, tape dump device, and database device. When SQL Server is installed initially, sysdevices has four entries: one for the MASTER database device (for databases), one for a disk dump device, and two for diskette dump devices.
Column Datatype Description low int First virtual page number on a database device (not used for dump devices). high int Last virtual page number on a database device (not used for dump devices). status smallint Bitmap indicating the type of device:
1 Default disk
2 Physical disk
4 Logical disk
8 Skip header
16 Dump device
32 Serial writes
64 Device mirrored
128 Reads mirrored (reserved)
256 Half-mirror only (reserved)
512 Mirror enabled
4096 Read Only
8192 Deferredcntrltype smallint Controller type:
0 Non CD-ROM database device
2 Disk dump device
3 - 4 Diskette dump device
5 Tape dump device
6 Named pipe devicename varchar(30) Logical name of the dump device or database device. phyname varchar(127) Name of the physical device. mirrorname varchar(127) Name of the mirror device. stripeset varchar(30) Reserved for future use. sysreferences (all databases)
Contains mappings of FOREIGN KEY constraint definitions.
Column Datatype Description constid int Constraint ID fkeyid int ID of referencing table fkeydbid smallint Reserved rkeyid int ID of referenced table rkeydbid smallint Reserved rkeyindid smallint Reserved keycnt smallint Number of columns in key fkey1 tinyint Column ID of referencing column fkey2 tinyint Column ID of referencing column fkey3 tinyint Column ID of referencing column fkey4 tinyint Column ID of referencing column fkey5 tinyint Column ID of referencing column fkey6 tinyint Column ID of referencing column fkey7 tinyint Column ID of referencing column fkey8 tinyint Column ID of referencing column fkey9 tinyint Column ID of referencing column fkey10 tinyint Column ID of referencing column fkey11 tinyint Column ID of referencing column fkey12 tinyint Column ID of referencing column fkey13 tinyint Column ID of referencing column fkey14 tinyint Column ID of referencing column fkey15 tinyint Column ID of referencing column fkey16 tinyint Column ID of referencing column rkey1 tinyint Column ID of referenced column rkey2 tinyint Column ID of referenced column rkey3 tinyint Column ID of referenced column rkey4 tinyint Column ID of referenced column rkey5 tinyint Column ID of referenced column rkey6 tinyint Column ID of referenced column rkey7 tinyint Column ID of referenced column rkey8 tinyint Column ID of referenced column rkey9 tinyint Column ID of referenced column rkey10 tinyint Column ID of referenced column rkey11 tinyint Column ID of referenced column rkey12 tinyint Column ID of referenced column rkey13 tinyint Column ID of referenced column rkey14 tinyint Column ID of referenced column rkey15 tinyint Column ID of referenced column rkey16 tinyint Column ID of referenced column sysservers (master database only)
Contains one row for each remote SQL Server on which this SQL Server can call remote stored procedures.
Column Datatype Description srvid smallint ID number (for local use only) of the remote server srvstatus smallint Bitmap of options srvname varchar(30) Name of the server srvnetname varchar(32) Reserved (currently the same as srvname) topologyx int Used by the SQL Enterprise Manager server topology diagram topologyy int Used by the SQL Enterprise Manager server topology diagram sysusers (all databases)
Contains one row for each user allowed to use the database and one row for each group.
When SQL Server is initially installed, master..sysusers contains three entries: dbo, with an suid of 1 and a uid of 1; guest, with a suid of -1 and uid of 2; and public, with an suid of -2 and a uid of 0. The sysusers table in the model database (and thus in all user databases) initially contains two entries: dbo and public.
The guest user provides access to the database to users not explicitly listed in sysusers, with a restricted set of permissions. The guest entry in master means that any user with an account on SQL Server (that is, with an entry in syslogins) can access master.
The public user refers to all users. The keyword PUBLIC is used with the GRANT and REVOKE statements to signify that permission is granted to or taken away from all users.
Column Datatype Description suid smallint Server user ID, copied from syslogins. A suid of 1 is the system administrator, -1 is a guest account. uid smallint User ID, unique in this database. A uid 1 is the database owner. gid smallint Group ID to which this user belongs. If uid = gid, this entry defines a group. The public group has a suid equal to -2. All other groups have a suid equal to -gid. name varchar(30) Username or group name, unique in this database. environ varchar(255) Reserved. 728x90'IT > DB' 카테고리의 다른 글
DB2에서의 자동 증가 필드 (0) 2024.10.13 ORACLE 7.0 매뉴얼 (3) 2024.10.09 SQL-SERVER SYSTEM TABLE1 (0) 2024.10.08 DB2SQL-SERVER (0) 2024.10.06 e-book (DB2) (0) 2024.10.06