본문 바로가기

프로그래밍/TSQL60

[MSSQL] datetime vs datetime2 타입 차이 DATETIME2는 DATETIME 에 비해 날짜 표현 범위가 넓으면서 정확도가 높고, 정밀도에 따라 저장공간의 절약이 가능한데이터 타입니다. SQL Server2008부터 지원되는 데이터 타입이며, DATETIME 에 비해 권고되는 데이터 타입입니다. 1. DATETIME 은 0001 년도 부터 표현이 불가한데 DATETIME2는 0001년 부터 표현이 가능합니다. 2. DATETIME은 0.00333초 단위 정확도이지만 DATETIME2는 100NANOSECONDS까지 정밀합니다. 3. 정밀도에 따라 저장용량 절약이 가능합니다.(datetime2(3), datetime2(4) 는 7바이트 미만은 6바이트 초과는 8바이트) larger range of values (0001-01-01 through 9.. 2021. 8. 25.
[MSSQL]병렬처리의 조건 요약 : 최단거리 찾을때는 CPU CORE개수 많은 데서 인덱스 없애고, 처리하세요 공간연산을 처리하다 보면 연산 시간이 많이 걸릴때가 있습니다. 특히 최단거리 찾기 문제를 해결할때 거리내에 해당되는 모든 객체를 검사하기 때문에 시간이 오래 걸립니다. 이때 병렬처리를 이용해 튜닝을 합니다. 그런데 병렬처리를 작동 시키는게 최적화기(optimizer)에게 MAXDOP로 힌트를 줘도 안될때도 있습니다. 병렬처리는 mssql 입장에서는 기댈곳이 없을 때 cpu에 기대는 것입니다. 그래서 강제로 발동 시기기 위해서는 index를 사용하지 않게 하는것이 방법이 될 수 있습니다. (KEY, INDEX 삭제) 그리고 ORDER BY, TOP 절에 따라 동작 여부가 갈리기도 하구요. 그래서 항상 쿼리 플랜을 확인하고,.. 2021. 7. 8.
[SQL][GEOMETRY][MATH] 좌표 벡터 기반 이동 해결과제. 두점이 주어지고 한점을 다른점 방향으로 특정 거리만큼 이동하고 싶은 문제 뇌피셜로 해결 : 기준 좌표에 좌표간의 차이를 기존 거리 대비 이동하고싶은 거리로 곱한만큼 가산하여 도출 SQL 표준 수학 함수 조회 (ex. SQRL) 검출 단계 1. 두 좌표간의 거리 구하기 : 피타고라스 정의 2. 벡터의 개념을 활용하여 좌표 변경 위치 도출 3. 검출된 위치를 기준으로 거리 검수 주요 코드 부분 및 결과 화면 --거리 구하기 SET @DIST = SQRT(POWER(@X2-@X1,2)+POWER(@Y2-@Y1,2)) --이동좌표 구하기 구하기 SET @X3 = @X1+3.3*((@X2-@X1)/@DIST) SET @Y3 = @Y1+3.3*((@Y2-@Y1)/@DIST) 3.3 은 제가 쓰는 변수 값.. 2021. 7. 1.
[MSSQL]OPENQUERY 실패 (해결) 문제상황. mssql 2012 서버 11.0.70001.0 버전에서 연결된 서버 mssql 2008(10.50.1600.1) 버전으로 linked server 구성. BCP 정상, OPENQUERY 일반 속성값은 정상으로 조회 되지만 geometry 를 포함한 경우 위 캡처와 같은 메시지가 발생하며 세션이 끊어짐 해결. MSSQL SERVER 패치 설치. 서버 버전별 패치 현황 페이지 참고하여 11.0에서 11.50으로 업그레이드 후 현상 발생하지 않음 (https://docs.microsoft.com/ko-kr/troubleshoot/sql/general/determine-version-edition-update-level) 확인 및 시도. 1. 분산 트랜잭션 설정 : 구성요소 서비스 - 보안구성 연결.. 2021. 6. 16.