728x90

오라클 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;

 

728x90

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

MSSQL COMMENTS 생성  (0) 2015.04.13
mssql 테이블 용량 및 row 갯수  (0) 2015.03.24
Session 관리 ( Inproc,StateServer,SQL Server )  (0) 2013.06.14
mssql 2008 로그 축소  (0) 2013.04.29
mssql 2008 이후 로그 축소  (0) 2012.11.27
728x90

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 값에 따라 셋팅 )

 

 


728x90
728x90

--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

728x90
728x90

 

복사http://blog.naver.com/pjhpjh5827/60166951893

SQL2008버젼 부터의 로그 축소방법이 공유된 것이 없어 글을 올립니다.

아래의 쿼리로 보통 로그파일의 용량을 축소하지만,
WITH TRUNCATE_ONLY, WITH NO_LOG 옵션은 SQL2008 이후 버젼에서는 지원되지 않습니다.

BACKUP LOG MNET_BIlL_DB WITH TRUNCATE_ONLY 를 실행하면 아래와 같은 에러가 발생합니다.
'TRUNCATE_ONLY'은(는) 인식할 수 없는 BACKUP 옵션입니다.

#기존 사용 방법
-- 트랜잭션로그파일최소의단위로축소
BACKUP LOG MNET_BIlL_DB WITH TRUNCATE_ONLY

-- 트랜잭션로그파일을삭제

BACKUP log MNET_BIlL_DB WITH NO_LOG

-- 트랜잭션로그파일을10메가로생성

DBCC SHRINKFILE (MNET_BIlL_DB_log, 10)

SQL2008 이후 버젼부터는 아래의 방법으로 해결하시면 됩니다.
-- 복구모델을 SIMPLE로 변경 후 SHRINKFILE을 이용해 로그를 삭제 후 다시 복구모델을 FULL로 변경

EX)
EXEC sp_helpdb MNET_BIlL_DB
go

--namesize

--MNET_BIlL_DB667904 KB

--MNET_BIlL_DB_log770752 KB

-- 복구모델을변경

ALTER DATABASE MNET_BIlL_DB SET RECOVERY SIMPLE

go

-- 로그를잘라낸다.

DBCC SHRINKFILE(MNET_BIlL_DB_log)

go

EXEC sp_helpdb MNET_BIlL_DB

go

-- 축소되었다.

--namesize

--MNET_BIlL_DB667904 KB

--MNET_BIlL_DB_log 576 KB

-- 복구모델을변경

ALTER DATABASE MNET_BIlL_DB SET RECOVERY FULL

go


아래는 트랜잭션 로그 축소 참고 링크입니다.
http://www.sqler.com/index.php?_filter=search&mid=bColumn&search_target=title&search_keyword=2008&document_srl=347242
http://www.sqler.com/index.php?_filter=search&mid=bColumn&search_target=title&search_keyword=%ED%8A%B8%EB%9E%9C%EC%9E%AD%EC%85%98&document_srl=366033
http://www.sqler.com/index.php?_filter=search&mid=bColumn&search_target=title&search_keyword=%EB%A1%9C%EA%B7%B8&document_srl=105214
http://www.sqler.com/index.php?_filter=search&mid=bColumn&search_target=title&search_keyword=%EB%A1%9C%EA%B7%B8&document_srl=129640

728x90

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

Session 관리 ( Inproc,StateServer,SQL Server )  (0) 2013.06.14
mssql 2008 로그 축소  (0) 2013.04.29
MS SQL 버전 확인 법  (0) 2012.10.19
MSSQL 2008 로그 축소 방법  (0) 2012.09.11
MS SQL 외래키 지정  (0) 2012.09.10
728x90

▣ SQL Server 2005 / 2008 버전 확인 방법

SQL Server Management Studio를 사용하여 SQL Sever에 연결, [새쿼리]를 클릭 후Transact-SQL 문을 실행합니다.

SELECT  SERVERPROPERTY('productversion'), SERVERPROPERTY ('productlevel'), SERVERPROPERTY ('edition')

위의 쿼리 문을 실행시키면 나오는 결과문에 따라 버전 상세 정보를 확인 할 수 있습니다.

 

EX) SQL Server 2005 결과
9.0.4035 SP3 Enterprise Edition
 

EX) SQL Server 2008 결과
10.0.1600.0 RTM Enterprise Edition
 

▣ SQL Server 2000 버전 확인 방법
SQL Server 2000의 경우 '쿼리 분석기'를 사용하여 SQL Server 2000에 연결 한 후, 다음 쿼리문을 실행합니다.
SELECT  SERVERPROPERTY('productversion'), SERVERPROPERTY ('productlevel'), SERVERPROPERTY ('edition')

쿼리 문 실행 결과물로 상세 버전 확인 할 수 있습니다.

 

EX) SQL Server 2000 결과
8.00.2039 SP4 Standard Edition

 

★ SQL Server 제품 버전 목록

SQL Server 2008 version number examples:
-RTM: 10.0.1600.*
-SP1: 10.0.2531.*

 

SQL Server 2005 version number examples:
-RTM: 9.0.1399.*
-SP1: 9.0.2047.*
-SP2: 9.0.3042.*
-SP3: 9.0.4035.*

 

SQL Server 2000 version number examples:
-RTM: 8.0.194.*
-SP1: 8.0.384.*
-SP2: 8.0.534.*
-SP3: 8.0.760.0
-SP3a: 8.0.760.*
-SP4: 8.0.2039.*

728x90

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

mssql 2008 로그 축소  (0) 2013.04.29
mssql 2008 이후 로그 축소  (0) 2012.11.27
MSSQL 2008 로그 축소 방법  (0) 2012.09.11
MS SQL 외래키 지정  (0) 2012.09.10
MSSQL 테이블 소유자 변경  (0) 2012.09.05
728x90

아래의 쿼리로 보통 로그파일의 용량을 축소하지만,
WITH TRUNCATE_ONLY, WITH NO_LOG 옵션은 SQL2008 이후 버젼에서는 지원되지 않습니다.

BACKUP LOG MNET_BIlL_DB WITH TRUNCATE_ONLY 를 실행하면 아래와 같은 에러가 발생합니다.
'TRUNCATE_ONLY'은(는) 인식할 수 없는 BACKUP 옵션입니다.

#기존 사용 방법
-- 트랜잭션로그파일최소의단위로축소
BACKUP LOG MNET_BIlL_DB WITH TRUNCATE_ONLY

-- 트랜잭션로그파일을삭제

BACKUP log MNET_BIlL_DB WITH NO_LOG

-- 트랜잭션로그파일을10메가로생성

DBCC SHRINKFILE (MNET_BIlL_DB_log, 10)

SQL2008 이후 버젼부터는 아래의 방법으로 해결하시면 됩니다.
-- 복구모델을 SIMPLE로 변경 후 SHRINKFILE을 이용해 로그를 삭제 후 다시 복구모델을 FULL로 변경

EX)
EXEC sp_helpdb MNET_BIlL_DB
go

--namesize

--MNET_BIlL_DB667904 KB

--MNET_BIlL_DB_log770752 KB

-- 복구모델을변경

ALTER DATABASE MNET_BIlL_DB SET RECOVERY SIMPLE

go

-- 로그를잘라낸다.

DBCC SHRINKFILE(MNET_BIlL_DB_log)

go

EXEC sp_helpdb MNET_BIlL_DB

go

-- 축소되었다.

--namesize

--MNET_BIlL_DB667904 KB

--MNET_BIlL_DB_log 576 KB

-- 복구모델을변경

ALTER DATABASE MNET_BIlL_DB SET RECOVERY FULL

go


아래는 트랜잭션 로그 축소 참고 링크입니다.
http://www.sqler.com/index.php?_filter=search&mid=bColumn&search_target=title&search_keyword=2008&document_srl=347242
http://www.sqler.com/index.php?_filter=search&mid=bColumn&search_target=title&search_keyword=%ED%8A%B8%EB%9E%9C%EC%9E%AD%EC%85%98&document_srl=366033
http://www.sqler.com/index.php?_filter=search&mid=bColumn&search_target=title&search_keyword=%EB%A1%9C%EA%B7%B8&document_srl=105214
http://www.sqler.com/index.php?_filter=search&mid=bColumn&search_target=title&search_keyword=%EB%A1%9C%EA%B7%B8&document_srl=129640

728x90

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

mssql 2008 이후 로그 축소  (0) 2012.11.27
MS SQL 버전 확인 법  (0) 2012.10.19
MS SQL 외래키 지정  (0) 2012.09.10
MSSQL 테이블 소유자 변경  (0) 2012.09.05
트랜젝션 고립화 수준  (0) 2012.06.25
728x90

ALTER TABLE [외래키를 지정할 테이블명]

ADD CONSTRAINT FK_제약이름

FOREIGN KEY(외래키컬럼명) REFERENCES [기본키를 가진 테이블명](테이블이름)

 

(예제)

ALTER TABLE SALES

ADD CONSTRINT FK_SHOP_SALES

FOREIGN KEY(SALES_SHOP_ID) REFERENCES SHOP(SHOP_ID)

 

728x90

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

MS SQL 버전 확인 법  (0) 2012.10.19
MSSQL 2008 로그 축소 방법  (0) 2012.09.11
MSSQL 테이블 소유자 변경  (0) 2012.09.05
트랜젝션 고립화 수준  (0) 2012.06.25
MSSQL identity 값 초기화  (0) 2012.04.04
728x90

1. 사용법

    USE DATABASE_NAME

    EXEC SP_CHANGEOBJECTOWNER 'OLD_OWNER.TABLE_NAME','NEW_OWNER'

 

2. EXAMPLE

   USER NEWDB

   EXEC SP_CHANGEOBJECTOWNER 'OLDDB.JOB','NEWDB'

 

  소유자가 OLDDB에서 NEWDB로 변경 된다.

728x90

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

MSSQL 2008 로그 축소 방법  (0) 2012.09.11
MS SQL 외래키 지정  (0) 2012.09.10
트랜젝션 고립화 수준  (0) 2012.06.25
MSSQL identity 값 초기화  (0) 2012.04.04
Foreign key 설정  (0) 2012.03.14

+ Recent posts