목록분류 전체보기 (164)
Data Modeling Evangelist Kaien Kim's Blog
전세 -> 월세 : 전환율은 월 1%로 정도 1. 1억 전세 -> 보증금 5천만원+월세 1) 1억 - 5천만원(지급보증금) = 5천만원(미지급보증금) 2) 5천만원(미지급보증금) : 미지급보증금 5천만원에 1%를 적용 --> 50만원 2. 1억 전세 -> 보증금 3천만원+월세 1) 1억 - 3천만원 = 7천만원 2) 7천만원 : 1% 적용시 월차임 --> 70만원 월세 -> 전세 : 전환율은 년 12%정도 3. 보증금 4천만원+월세 60만원 -> 전세 1) 보증금 4천만원 2) 월세 60만원(1%)에 해당하는 금액 : 6천만원(100%) --> 4천만원 + 6천만원 : 1억원 4. 보증금 3천만원+월세 30만원 -> 전세 1)보증금 3천만원 2)월차임 30만원(1%)에 해당하는 금액 : 3천만원(100%..
/* 동적 쿼리의 해결사 sp_executesql vs. exec 소개. Visual Basic, ASP, VB.NET에서 ADO, ADO.NET을 이용한 Database 프로그램을 개발하는 경우 프로그램내에 SQL 구문을 문자열로 연결한 후, 실행하도록 구성한 코드를 많이 보게 된다. 이러한 코드 구성을 일반적으로 '동적 쿼리', '하드 코딩된 쿼리'라고 부른다. ex. vb의 경우 Dim strSQL As String strSQL="select orderid, orderdate, employeeid from orders" strSQL=strSQL+" where orderid=" & txtOrderID cnn.Execute strSQL 그러나, 이러한 동적 쿼리의 사용은 가능한 배제하는 것이 권장 사항..
TRY..CATCH를 이용한 중첩 트랜잭션 예외처리. 개요. TRY .. CATCH 구문 내에서의 트랙잭션 처리에 대해 어떻게 구현되는지 알아보는 것과 트랜잭션으로 처리하는 프로시저 내에서 다시 트랜잭션으로 처리하는 프로시저를 호출 시 제대로 작동하는지 확인하는 것이 이 문서의 목적입니다. 테스트 샘플. 테스트 샘플은 분모를 파라미터로 받아서 0을 제외한 값은 에러가 나지 않고 0인 값은 에러가 나는 예제입니다. 1. 테스트 테이블 생성 CREATE TABLE TryTest ( id1 int, id2 int ) 2. 부모 프로시저 작성. CREATE PROCEDURE ParentTest ( @bunmo int ) AS BEGIN SET NOCOUNT ON; BEGIN TRY BEGIN TRAN Paren..
슬픈현실...ㅠㅠ http://www.pressian.com/article/article.asp?article_num=30100810150825§ion=02
1. DB 생성시 주의사항 1) DB 명칭은 해당 서비스를 파악할 수 있도록 명명한다. 2. USER 생성시 주의사항 1) USER ID는 유관 서비스를 파악할 수 있도록 명명한다. 2) Password는 운용팀 DBA의 생성규칙을 따른다. 3. 테이블 생성시 주의사항 1) Table Column 길이의 합이 8K를 넘지 않도록 할 것 2) Table 및 Column 이름은 일관성 있게 줄 것 (예: TB_, str_) 3) PK / FK Column은 고정길이 형식을 사용할 것 (예: CHAR Type) 4) Trigger의 사용을 자제 5) Table의 소유자는 항상 ‘DBO’가 되도록 한다 4. 인덱스 생성시 주의사항 1) Where 절에서 많이 사용하는 경우 생성 2) Covered Index인 ..
안녕하세요. 반갑습니다. 하나의 테이블에서 사용하지 않는 row들중 키(pk)값이 min값을 가져와서 update를 차례로 하는 프로그램을 작성하다가. 한가지 문제가 조금 생겼습니다. c/s 환경상 여러 pc에서 동시에 처리가 되니깐... 동일한 min값을 두 pc에서 사용하지 못하도록 해당 row에 락(lock)을 걸려고 select 문에 for update를 사용하였습니다. 근데 제가 이것을 잘 이해하지 못해서 락이 제대로 걸리지 않습니다. 아래 저의 적용예를 보시고 많은 조언 부탁드립니다. 예) 1. 정상적으로 lock 됨. select serial_no /* 사용하지 않는 row중 가장 작은 row */ from stock_temp where use_flag = 'N' for update ; ==..
USE AdventureWorks GO EXEC sp_helpfile -------- 1) EXEC sp_spaceused -------- 2) DBCC sqlperf(logspace) -------- 3) ALTER DATABASE AdventureWorks MODIFY FILE ( NAME = AdventureWorks_Data, SIZE = 500 ) EXEC sp_helpfile -------- 4) ALTER DATABASE AdventureWorks MODIFY FILE ( NAME = AdventureWorks_Data, FILEGROWTH = 100, MAXSIZE = 500 ) GO -------- 5) ALTER DATABASE AdventureWorks MODIFY FILE ( NAM..
지난 6개월간 매주 월요일 저녁시간을 할애한 결과가 이 날 공개됩니다. 많이 부끄럽지만, 한 편으로는 자랑스럽기도 합니다. 김동원 선생님 감사합니다.
SQL Server에서 컬럼 값의 길이를 가져와야 할 경우, 크게 - 그냥 길이 - byte수 로 구분할 수 있다. 오라클에서는 1) SELECT LENGTH('모델링월드') FROM DUAL; 2) SELECT LENGTHB('모델링월드') FROM DUAL; 일 경우 1)은 5, 2)는 10을 리턴한다. 이건 이전 부터 알고있었는데, 요걸 SQLServer에서 사용할 일이 생겼다. 열심히 찾아 보았다. ^^; 역시 있었다. 문법도 오라클과 동일하다. DATALENGTH ( expression ) -인수 expression 임의 데이터 형식의 식입니다. -반환 값 int 1) SELECT LEN('모델링월드') 2) SELECT DATALENGTH('모델링월드') 일 경우 1)은 5, 2)는 10을 리..
인간의 생각하는 능력이 언어라는 것을 만들었지만, 거꾸로 언어가 인간의 사고 능력을 지배하게 되죠. 오라클 성능 세계에서도 마찬가지입니다. 용어에 대한 정확한 이해가 없으면 문제를 100% 이해할 수도 없을뿐더러 잘못된 지식을 믿게 됩니다. 예를 들어 볼까요? Explain Plan과 Execution Plan의 차이를 설명할 수 있습니까? Scan과 Lookup의 차이는 무엇입니까? Histogram의 의미는 무엇입니까? Lock과 Enqueue의 의미를 구분할 수 있습니까? SQL문과 Cursor의 차이를 설명할 수 있습니까? Event라는 용어가 언제 쓰이는지 설명할 수 있습니까? 용어을 100% 정확하게 설명할 수 있다면 그 자체로도 성능 문제에 대한 상당한 통찰력을 가지고 있다고 볼 수 있습니다..