태터데스크 관리자

도움말
닫기
적용하기   첫페이지 만들기

태터데스크 메시지

저장하였습니다.

-- 테이블 정보 보기

SELECT * FROM sysobjects WHERE xtype='U';

SELECT * FROM  INFORMATION_SCHEMA.TABLES;

SELECT * FROM ::FN_LISTEXTENDEDPROPERTY(NULL, 'User','dbo','table', null, NULL, NULL) order by objname

SELECT * FROM ::fn_listextendedproperty (NULL, 'user', 'dbo', 'table', '[테이블명]', 'column', default)



'프로그래밍 > MS_SQL' 카테고리의 다른 글

MSSQL 테이블 COMMENT 보기  (0) 2015.04.29
MSSQL IDENTITY 값 재 설정  (0) 2015.04.27
MSSQL 자동 증가 시드값 가져오기  (0) 2015.04.27
sqlexpress 백업 및 복원  (0) 2015.04.24
mssql 파일 크기 줄이기  (0) 2015.04.14
MSSQL COMMENTS 생성  (0) 2015.04.13
블로그 이미지

구본숭 하늘을사랑한사람

진실된 사람으로 태어 나기 위한 조건들, 사랑하기 위해 필요한 것을 찾습니다.

identity 값 확인

> SELECT @@IDENTITY

 

identity 값 자동 설정, 끄기

> SET IDENTITY_INSERT 테이블 ON

> SET IDENTITY_INSERT 테이블 OFF

 

identity 값 재설정

> DBCC CHECKIDENT(테이블 , reseed, 번호)

 

identity 값을 현재 값 중 최대 컬럼값으로 설정

> DBCC CHECKIDENT(테이블 , reseed )

 

'프로그래밍 > MS_SQL' 카테고리의 다른 글

MSSQL 테이블 COMMENT 보기  (0) 2015.04.29
MSSQL IDENTITY 값 재 설정  (0) 2015.04.27
MSSQL 자동 증가 시드값 가져오기  (0) 2015.04.27
sqlexpress 백업 및 복원  (0) 2015.04.24
mssql 파일 크기 줄이기  (0) 2015.04.14
MSSQL COMMENTS 생성  (0) 2015.04.13
블로그 이미지

구본숭 하늘을사랑한사람

진실된 사람으로 태어 나기 위한 조건들, 사랑하기 위해 필요한 것을 찾습니다.

MS SQL 자동 증가 시드값 가져오는 방법

 

1. IDENT_CURRENT('특정테이블명')

- 특정 테이블에 한정할 수 있음

- 특정 세션과 범위에 있는 테이블에 대한 마지막 ID 값을 반환함

  1. SELECT IDENT_CURRENT('테이블명')  

 

 

 

2. @@IDENTITY

- 전체 범위에 대한 현제 세션에 있는 테이블에 대해 생성된 마지막 ID 값을 반환함

  1. SELECT @@IDENTITY()  

 

 

3. SCOPE_IDENTITY()

- 현제 세션, 범위에 있는 테이블에 대해 생성된 마지막 ID 값을 반환함

  1. SELECT SCOPE_IDENTITY()  

 

 

 

 

4. 각 함수 및 전역변수 차이점

- IDENT_CURRENT 는 세션과 상관없이 특정 테이블 시드값을 가져옴

- @@IDENTITY,SCOPE_IDENTITY() 은 해당 세션만 유효

- @@IDENTITY 연쇄적으로 발생해도 최종 시드값을 가져옴

- SCOPE_IDENTITY() 연쇄적으로 발생해도 최초 시드값을 가져옴 

  1. -- 1부터 시작하는 IDENTITY 값을 가지고 있는 TEMP1 테이블  
  2. CREATE  TABLE   TEMP1 ( Seq INT IDENTITY(1,1) )       
  3. GO  
  4. -- 1000부터 시작하는 IDENTITY 값을 가지고 있는 TEMP2 테이블  
  5. CREATE  TABLE   TEMP2 ( Seq INT IDENTITY(1000,1) )  
  6. GO  
  7.   
  8. -- 트리거 만들기  
  9. -- #TEMP1 에 값이 들어가면 TEMP2 에도 값을 넣어주는 트리거만들기  
  10. CREATE  TRIGGER TEMP1_I ON TEMP1 FOR INSERT  
  11. AS   
  12. BEGIN  
  13.     INSERT INTO TEMP2 DEFAULT VALUES   
  14. END  
  15.   
  16. ----------------------------------------------------------------------------  
  17. --  
  18. -- 테스트 상황 1  
  19. -- 같은 세션인 경우  
  20. -- TEMP1에 값을 넣었을때 IDENT_CURRENT('특정테이블명'), @@IDENTITY, SCOPE_IDENTITY()   
  21. -- 각각 어떤 값을 가져오느냐 테스트  
  22. --   
  23. ----------------------------------------------------------------------------  
  24.   
  25. -- 1. INSERT   
  26. INSERT INTO TEMP1 DEFAULT VALUES  
  27.   
  28. -- 2. @@IDENTITY  
  29. SELECT  @@IDENTITY   --> 결과값: 1000, TEMP2의 마지막 Identity값 가져옴  
  30.   
  31. -- 3. SCOPE_IDENTITY()     
  32. SELECT  SCOPE_IDENTITY()  --> 결과값: 1, TEMP1의 마지막 Identity값 가져옴  
  33.   
  34. -- 4. IDENT_CURRENT('특정테이블명')   
  35. SELECT  IDENT_CURRENT('TEMP1')  --> 결과값: 1, TEMP1의 마지막 Identity값 가져옴  
  36. SELECT  IDENT_CURRENT('TEMP2')  --> 결과값: 1000, TEMP2의 마지막 Identity값 가져옴  
  37.   
  38.   
  39. ----------------------------------------------------------------------------  
  40. --  
  41. -- 테스트 상황 2  
  42. -- 다른 세션인 경우  
  43. -- 다른 세션에서 값을 넣었을때 IDENT_CURRENT('특정테이블명'), @@IDENTITY, SCOPE_IDENTITY()   
  44. -- 각각 어떤 값을 가져오느냐 테스트  
  45. --   
  46. ----------------------------------------------------------------------------  
  47.   
  48. -- 1. @@IDENTITY  
  49. SELECT  @@IDENTITY   --> 결과값: NULL  
  50.   
  51. -- 2. SCOPE_IDENTITY()     
  52. SELECT  SCOPE_IDENTITY()  --> 결과값: NULL  
  53.   
  54. -- 3. IDENT_CURRENT('특정테이블명')   
  55. SELECT  IDENT_CURRENT('TEMP1')  --> 결과값: 1, TEMP1의 마지막 Identity값 가져옴  
  56. SELECT  IDENT_CURRENT('TEMP2')  --> 결과값: 1000, TEMP2의 마지막 Identity값 가져옴

 

출처 : http://rocabilly.tistory.com/26  

'프로그래밍 > MS_SQL' 카테고리의 다른 글

MSSQL 테이블 COMMENT 보기  (0) 2015.04.29
MSSQL IDENTITY 값 재 설정  (0) 2015.04.27
MSSQL 자동 증가 시드값 가져오기  (0) 2015.04.27
sqlexpress 백업 및 복원  (0) 2015.04.24
mssql 파일 크기 줄이기  (0) 2015.04.14
MSSQL COMMENTS 생성  (0) 2015.04.13
블로그 이미지

구본숭 하늘을사랑한사람

진실된 사람으로 태어 나기 위한 조건들, 사랑하기 위해 필요한 것을 찾습니다.

Express 버전의 경우 서버 에이젼트가 설치되지 않아 작업스케쥴링을 설정하는것이 불가능합니다..


그래서 배치파일("sqlcmd")과 프로시져를 이용한 백업 스크립트를 작성하고  윈도우 스케쥴링을 통해 자동 백업을 실행 할 수 있습니다.


상세한 내용은 MS Support Url을 참조해주세요. ( http://support.microsoft.com/kb/2019698/en-usViewer )


1. 백업을 위한 프로시져 생성


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
// Copyright © Microsoft Corporation.  All Rights Reserved.
// This code released under the terms of the
// Microsoft Public License (MS-PL, http://opensource.org/licenses/ms-pl.html.)
USE [master]
GO
/****** Object:  StoredProcedure [dbo].[sp_BackupDatabases] ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
  
-- =============================================
-- Author: Microsoft
-- Create date: 2010-02-06
-- Description: Backup Databases for SQLExpress
-- Parameter1: databaseName
-- Parameter2: backupType F=full, D=differential, L=log
-- Parameter3: backup file location
-- =============================================
  
CREATE PROCEDURE [dbo].[sp_BackupDatabases] 
            @databaseName sysname = null,
            @backupType CHAR(1),
            @backupLocation nvarchar(200)
AS
  
       SET NOCOUNT ON;
            
            DECLARE @DBs TABLE
            (
                  ID int IDENTITY PRIMARY KEY,
                  DBNAME nvarchar(500)
            )
            
             -- Pick out only databases which are online in case ALL databases are chosen to be backed up
             -- If specific database is chosen to be backed up only pick that out from @DBs
            INSERT INTO @DBs (DBNAME)
            SELECT Name FROM master.sys.databases
            where state=0
            AND name=@DatabaseName
            OR @DatabaseName IS NULL
            ORDER BY Name
            
            -- Filter out databases which do not need to backed up
            IF @backupType='F'
                  BEGIN
                  DELETE @DBs where DBNAME IN ('tempdb','Northwind','pubs','AdventureWorks')
                  END
            ELSE IF @backupType='D'
                  BEGIN
                  DELETE @DBs where DBNAME IN ('tempdb','Northwind','pubs','master','AdventureWorks')
                  END
            ELSE IF @backupType='L'
                  BEGIN
                  DELETE @DBs where DBNAME IN ('tempdb','Northwind','pubs','master','AdventureWorks')
                  END
            ELSE
                  BEGIN
                  RETURN
                  END
            
            -- Declare variables
            DECLARE @BackupName varchar(100)
            DECLARE @BackupFile varchar(100)
            DECLARE @DBNAME varchar(300)
            DECLARE @sqlCommand NVARCHAR(1000)
        DECLARE @dateTime NVARCHAR(20)
            DECLARE @Loop int                 
                        
            -- Loop through the databases one by one
            SELECT @Loop = min(ID) FROM @DBs
  
      WHILE @Loop IS NOT NULL
      BEGIN
  
-- Database Names have to be in [dbname] format since some have - or _ in their name
      SET @DBNAME = '['+(SELECT DBNAME FROM @DBs WHERE ID = @Loop)+']'
  
-- Set the current date and time n yyyyhhmmss format
      SET @dateTime = REPLACE(CONVERT(VARCHAR, GETDATE(),101),'/','') + '_' REPLACE(CONVERT(VARCHAR, GETDATE(),108),':',''
  
-- Create backup filename in path\filename.extension format for full,diff and log backups
      IF @backupType = 'F'
            SET @BackupFile = @backupLocation+REPLACE(REPLACE(@DBNAME, '[',''),']','')+ '_FULL_'+ @dateTime+ '.BAK'
      ELSE IF @backupType = 'D'
            SET @BackupFile = @backupLocation+REPLACE(REPLACE(@DBNAME, '[',''),']','')+ '_DIFF_'+ @dateTime+ '.BAK'
      ELSE IF @backupType = 'L'
            SET @BackupFile = @backupLocation+REPLACE(REPLACE(@DBNAME, '[',''),']','')+ '_LOG_'+ @dateTime+ '.TRN'
  
-- Provide the backup a name for storing in the media
      IF @backupType = 'F'
            SET @BackupName = REPLACE(REPLACE(@DBNAME,'[',''),']','') +' full backup for '+ @dateTime
      IF @backupType = 'D'
            SET @BackupName = REPLACE(REPLACE(@DBNAME,'[',''),']','') +' differential backup for '+ @dateTime
      IF @backupType = 'L'
            SET @BackupName = REPLACE(REPLACE(@DBNAME,'[',''),']','') +' log backup for '+ @dateTime
  
-- Generate the dynamic SQL command to be executed
  
       IF @backupType = 'F'
                  BEGIN
               SET @sqlCommand = 'BACKUP DATABASE ' +@DBNAME+  ' TO DISK = '''+@BackupFile+ ''' WITH INIT, NAME= ''' +@BackupName+''', NOSKIP, NOFORMAT'
                  END
       IF @backupType = 'D'
                  BEGIN
               SET @sqlCommand = 'BACKUP DATABASE ' +@DBNAME+  ' TO DISK = '''+@BackupFile+ ''' WITH DIFFERENTIAL, INIT, NAME= ''' +@BackupName+''', NOSKIP, NOFORMAT'       
                  END
       IF @backupType = 'L'
                  BEGIN
               SET @sqlCommand = 'BACKUP LOG ' +@DBNAME+  ' TO DISK = '''+@BackupFile+ ''' WITH INIT, NAME= ''' +@BackupName+''', NOSKIP, NOFORMAT'       
                  END
  
-- Execute the generated SQL command
       EXEC(@sqlCommand)
  
-- Goto the next database
SELECT @Loop = min(ID) FROM @DBs where ID>@Loop
  
END



2. 백업 프로시져 호출을 위한 bat 파일을 생성합니다.

( 아래 스크립트는 MS 사이트에서 가져온 내용이고.. 위의 프로시져를 보시는편이 더 쉽게 이해하실수 있을 것 같습니다....)

1
2
3
4
5
6
7
8
9
10
11
-- 전체 백업 , 윈도우 인증을 통한 SQL EXPRESS의 모든 대상 백업.
sqlcmd -S .\EXPRESS –E -Q "EXEC sp_BackupDatabases @backupLocation='D:\SQLBackups\', @backupType='F'"
 
-- 차등 백업 ,  Login 인증을 통한 SQL EXPRESS의 모든 대상 백업.
sqlcmd -U SQLLogin -P password -S .\SQLEXPRESS -Q "EXEC sp_BackupDatabases @backupLocation ='D:\SQLBackups', @BackupType=’D’"
 
-- 로그 전체 백업 , 윈도우 인증을  SQL EXPRESS의 모든 대상 백업.
sqlcmd -S .\SQLEXPRESS -E -Q "EXEC sp_BackupDatabases @backupLocation='D:\SQLBackups\',@backupType='L'"
 
-- 전체 백업 , 지정된 DB 를 윈도우 인증을 통해 백업
sqlcmd -S .\SQLEXPRESS -E -Q "EXEC sp_BackupDatabases @backupLocation='D:\SQLBackups\', @databaseName=’USERDB’, @backupType='F'"


 실제사용한 백업 배치파일 스크립트

1
sqlcmd -S .\SQLEXPRESS -E -Q "EXEC sp_BackupDatabases @backupLocation='E:\uhoon_DB_BACKUP\', @databaseName='db_name', @backupType='F'"




3. 위의 스크립트를 통해 생성한 배치파일을 실행하는것으로 백업이 가능하며

윈도우 스케쥴링에 등록하여 자동 백업이 가능하게 됩니다.


출처 - http://www.uhoon.co.kr/mssql/1301


'프로그래밍 > MS_SQL' 카테고리의 다른 글

MSSQL IDENTITY 값 재 설정  (0) 2015.04.27
MSSQL 자동 증가 시드값 가져오기  (0) 2015.04.27
sqlexpress 백업 및 복원  (0) 2015.04.24
mssql 파일 크기 줄이기  (0) 2015.04.14
MSSQL COMMENTS 생성  (0) 2015.04.13
mssql 테이블 용량 및 row 갯수  (0) 2015.03.24
블로그 이미지

구본숭 하늘을사랑한사람

진실된 사람으로 태어 나기 위한 조건들, 사랑하기 위해 필요한 것을 찾습니다.

MS-SQL MDF/LDF 파일 크기 줄이기

초기 설정값의 실수, 혹은 어쩌다가 데이터가 대박 큰게 들어왔다가 사라졌을 때, DB의 디스크 용량을 줄이고 싶을 때가 있다. 이럴때 사용하는 것.


    -- DB 정보보기

    SP_HELPDB db_name 


    -- DB 로그 비우기

    BACKUP LOG db_name WITH TRUNCATE_ONLY

 

   -- DB 의 LDF 파일의 크기를 5MB로 줄인다.

   DBCC SHRINKFILE (logfile_name, 5)


   -- MDF 파일 크기 줄이기

   DBCC SHRINKDATABASE(db_name)



출처 : http://coolsoo7221.blogspot.kr/

블로그 이미지

구본숭 하늘을사랑한사람

진실된 사람으로 태어 나기 위한 조건들, 사랑하기 위해 필요한 것을 찾습니다.

MSSQL SCRIPT로 COMMENT 달기

 

/* 테이블 주석 */
exec sp_addextendedproperty 'MS_DESCRIPTION','[테이블주석]','user', 'dbo', 'table', '[테이블명]'
go

/* 컬럼 주석 */
exec sp_addextendedproperty 'MS_DESCRIPTION','[컬럼주석]','user', 'dbo','table', '[테이블명]', 'column', '[컬럼명]'

go

 

블로그 이미지

구본숭 하늘을사랑한사람

진실된 사람으로 태어 나기 위한 조건들, 사랑하기 위해 필요한 것을 찾습니다.

-- 테이블별 사용 용량

SELECT table_name = convert(varchar(30), min(o.name))

 , table_size = ltrim(str(sum(cast(reserved as bigint)) * 8192 / 1024.,15,0) + 'KB')

FROM sysindexes i

  INNER JOIN 

  sysobjects o 

  ON (o.id = i.id)

WHERE i.indid IN (0, 1, 255) 

AND  o.xtype = 'U'

GROUP BY i.id


-- 용량별 소팅

SELECT table_name = convert(varchar(30), min(o.name))

 , table_size = convert(int, ltrim(str(sum(cast(reserved as bigint)) * 8192 / 1024., 15, 0))), UNIT = 'KB' 

FROM sysindexes i 

  INNER JOIN 

  sysobjects o

  ON (o.id = i.id) 

WHERE i.indid IN (0, 1, 255)

AND  o.xtype = 'U' 

GROUP BY i.id

ORDER BY table_size DESC


-- 테이블별 Row 수

SELECT o.name

 , i.rows 

FROM sysindexes i

  INNER JOIN 

  sysobjects o 

  ON i.id = o.id

WHERE i.indid < 2 

AND  o.xtype = 'U'

ORDER BY i.id


출처 : http://unions5.tistory.com/92

블로그 이미지

구본숭 하늘을사랑한사람

진실된 사람으로 태어 나기 위한 조건들, 사랑하기 위해 필요한 것을 찾습니다.

오라클 SQL 문

     SELECT MENU_CD_V     menucdv
     ,UP_MENU_CD_V  upmenucdv
     ,MENU_NM_V     menunmv
     ,DEPTH_N       depthn
     ,SHOW_ORDER_N  showordern
     ,USE_YN_C      useync
    FROM T_OM_USER_MENU
         START WITH UP_MENU_CD_V = '07000000'
           AND SITE_CD_V = 'S0000100'
       CONNECT BY PRIOR MENU_CD_V = UP_MENU_CD_V AND SITE_CD_V = 'S0000100'
         ORDER SIBLINGS BY SHOW_ORDER_N;

=========================================================================>

위의 오라클 sql 문을 ms-sql 문으로 변환

MS-SQL  문

WITH CTE_USER_MENU_TABLE
AS
(
   SELECT MENU_CD_V, UP_MENU_CD_V, MENU_NM_V, DEPTH_N, USE_YN_C , CONVERT(VARCHAR(255), RIGHT('000' + RTRIM(SHOW_ORDER_N),3) ) AS SHOW_ORDER_N
   FROM T_OM_USER_MENU
   WHERE UP_MENU_CD_V = '07000000' AND SITE_CD_V = 'S0000100'
   UNION ALL
   SELECT A.MENU_CD_V, A.UP_MENU_CD_V, A.MENU_NM_V, A.DEPTH_N, A.USE_YN_C , CONVERT(VARCHAR(255), CONVERT(VARCHAR,B.SHOW_ORDER_N) + '|' + RIGHT('000' + RTRIM(A.SHOW_ORDER_N),3) ) AS SHOW_ORDER_N
   FROM T_OM_USER_MENU A INNER JOIN CTE_USER_MENU_TABLE B ON A.UP_MENU_CD_V = B.MENU_CD_V
   WHERE A.SITE_CD_V = 'S0000100'
)
SELECT
    MENU_CD_V     menucdv
    ,UP_MENU_CD_V  upmenucdv
    ,MENU_NM_V     menunmv
    ,DEPTH_N       depthn
    ,SHOW_ORDER_N  showordern
    ,USE_YN_C      useync
   FROM CTE_USER_MENU_TABLE ORDER BY SHOW_ORDER_N;

 

블로그 이미지

구본숭 하늘을사랑한사람

진실된 사람으로 태어 나기 위한 조건들, 사랑하기 위해 필요한 것을 찾습니다.

Session 관리

 

1. 세션 상태 모드

 

1) InProc ( Default )

 

- 세션 정보를 웹서버 메모리에 저장

- 데이터베이스 이용하는 것보다 성능 우월

- 웹 서비스 재부팅시 모든 세션 사라짐

 

 

2) StateServer

 

- 윈도우 서버 관리도구에 있는 ASP.NET State Service 라는 서비스 데몬의 메모리 이용

- IIS 재부팅 되어도 세션 정보 유지

- 하나의 서비스 데몬이므로 여러개의 웹서버에서 하나의 세션관리 가능해짐

- 윈도우 시작시 수정 시작 설정되어 있음 ( StateServer 를 하려면 자동 고려 하거나 서비스 시작 시켜야 함 )

- 웹서버 재부팅시에는 세션 사라짐

 

 

3) SQL Server

 

- 세션 정보를 SQL Server 에서 저장 관리

- 웹서버 재부팅되어도 세션 유지

- 여러개의 웹서버에서 하나의 세션관리 가능

- 물리적인 디스크 I/O 가 발생되어 가장 느린 상테 관리 방법

 

 

2. 세션 상태 모드 설정

 

1) web.config 에서 설정

  1. <configuration>  
  2.     <system.web>  
  3.         <sessionState mode="off || StateServer || SQLServer " ~~ />  
  4.     </system.web>  
  5. </configuration>  

 

 

2) 각 소스상에서 System.Web.SessionState.HttpSession-State.Mode 속성으로 셋팅

 

 

 

[SQL Server Settion 설정 방법]

 

1. DB 에 ASPState DB 생성

 

< DB 서버 cmd 창에서 아래의 경로로 aspnet_regsql 실행 >

 

C:\Windows\Microsoft.NET\Framework\v4.0.30319>aspnet_regsql -S "ServerHost" -U sa -P [sa password] -ssadd -sstype c -d "ASPState"

(ex: C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727>aspnet_regsql -S localhost -U sa -P your-password -ssadd -sstype p)

 

위 명령어를 치면 아래 < 그림1 > 의 ASPState 라는 DB 및 관련 SP 들이 생김

 

<주의사항>

Password 등의 글자에 "&" 등이 있으면 전체 명령어를 인식하는것이 아닌 "&" 앞까지 인식.

따라서 암호에 "&" 가 있으면 aspnet_regsql -S localhost -U sa -ssadd -sstype p 로 "-P"를 빼서 명령어를 친 다음 암호 입력창이 나오면 암호입력

 

 

 

2. Web.config 설정

  1. <configuration>  
  2.     <system.web>  
  3.             <sessionState mode="SQLServer"   
  4. sqlConnectionString="data source=ServerHost; User ID=SessionUserID; Password=SessionUserPassword" timeout="3600" />  
  5.     </system.web>  
  6. </configuration>  

 

- 사용하고자 하는 User ID의 DB 계정은 ASPState에 대해 db_owner 이거나 아니면 최소한 db_datareader, db_datawriter 역할과 자동 생성되는 Stored procedure에 대해 실행 권한이 있어야 함.

 

 

< 그림1 >

 

 

 

 

< aspnet_regsql 파라미터 >

 

Parameter

Description

-S [Server Name] Sql Server name or IP address, where sessions will be stored
-E  Windows authentication is used to access SQL Server
-U [User Name] User name, if SQL authentication is used
-P [Password] Password, if SQL authentication is used
-D [Database Name] Database name. This parameter is used if parameter -sstype is equal to "c", which means that custom database is used as session storage.
-ssadd Abbreviation of "Session State Add". This option adds session state database.
-ssremove  This parameter removes existing session state database.
-sqlexportonly [Script File Name or Full Path]

 If this parameter is used, program will not execute any SQL, but just create T-SQL script which can be executed later on server(s). This is useful in shared hosting scenario.

Type of session state storage. There are three possible values:

-sstype [t|p|c] t, means temporary storage. Tables are created in temdb database. In this case session is lost if SQL Server restarts,
 p, represents persistent storage. Session state tables are created in AspState database,
 c, custom storage. In this case, you specify database name where sessions will be stored. Database name is set using -D parameter.

 

 

< ASPStateTempSessions 테이블, ASPStateTempApplications 테이블 내용 >

 

- 사이트에 접속된 사용자가 있으면 ( 처음 이거나, 세션기간만료 사용자 ) ASPStateTempSessions 테이블에 Row 생성 ( 만료일자: web.config 값에 따라 셋팅 )

 

 


블로그 이미지

구본숭 하늘을사랑한사람

진실된 사람으로 태어 나기 위한 조건들, 사랑하기 위해 필요한 것을 찾습니다.

--2008 이전 버젼의 경우

BACKUP LOG EchoRPT WITH NO_LOG

DBCC SHRINKDATABASE (EchoRPT, TRUNCATEONLY)

--2008 버젼의 경우

GO
-- Truncate the log by changing the database recovery model to SIMPLE.

ALTER DATABASE DB이름
SET RECOVERY SIMPLE;
GO
-- Shrink the truncated log file to 1 MB.
DBCC SHRINKFILE (DB이름_log, 1); --1mb로 축소
GO
-- Reset the database recovery model.
ALTER DATABASE DB이름
SET RECOVERY FULL;
GO

블로그 이미지

구본숭 하늘을사랑한사람

진실된 사람으로 태어 나기 위한 조건들, 사랑하기 위해 필요한 것을 찾습니다.