전체 글 1383

MySQL /MariaDB 통계 정보

MySQL /MariaDB 통계 정보 · Version : MySQL 5.7, MariaDB 10.0 비용기반 최적화에서 가장 중요한것은 통계 정보이다. 통계 정보가 정확하지 않다면, 옵티마이저는 엉뚱한 실행계획을 생성하기 때문이다. MySQL, MariaDB의 통계 정보 또한 일반 다른 RDBMS와 같이 비용기반 옵티마이저를 사용하지만 아직 상용 RDBMS에 비해서는 다양하지 않다. MariaDB 10.0은 MySQL 5.6의 기능을 포함하고 있기 때문에 MySQL 5.6 과 매우 유사하다. MySQL 5.6 부터는 InnoDB 스토리지 엔진을 사용하는 테이블에 대한 통계 정보를 영구적(Persistent)으로 관리할 수 있다. MySQL 5.5 버전 까지는 show index from 으로 인덱스 칼..

MySQL, MariaDB 2019.09.12

삭제된 AD 그룹 계정으로 SQL Server 로그인 사례 (로그인 그룹 삭제 후 조치해야할 사항)

삭제된 AD 그룹 계정으로 SQL Server 로그인 사례 (로그인 그룹 삭제 후 조치해야할 사항) · Version : SQL Server 도메인 [DOMAIN\group]에 멤버 [DOMAIN\user]가 있고 [DOMAIN\group]에 SQL Server 인스턴스에 대한 로그인 권한이 있는 그룹이 있다고 가정한다. “Drop Login [DOMAIN\group]”을 실행하면 [DOMAIN\user] 사용자는 더 이상 SQL Server에 액세스 할 수 없을 것으로 예상했다. 그러나 아래와 같은 결과가 나왔다. · [DOMAIN\user]의 새로운 연결은 허용되지 않음 · 기존 연결된 사용자는 계속 작동함 (기존의 [DOMAIN\user] 연결에는 그룹 구성원 및 권한이 캐시되므로 해당 값을 새로 ..

QPI(Query Performance Insights) 라이브러리를 사용하여 Azure SQL Managed Instance의 로그쓰기 사용량 확인

QPI(Query Performance Insights) 라이브러리를 사용하여 Azure SQL Managed Instance의 로그쓰기 사용량 확인 · Version : Azure SQL Azure SQL Managed Instance는 Azure 클라우드에서 호스팅되는 완전히 관리되는 SQL Server 인스턴스이다. 관리형 인스턴스에는 최대 로그쓰기 처리량 성능에 일부 제한이 있어 워크로드 속도가 느려질 수 있다. 이번 포스트에서는 관리형 인스턴스에서 쓰기 로그 처리량 문제를 식별하는 방법에 대해서 살펴본다. Azure SQL Managed Instance에는 최대 로그 쓰기 속도와 같은 몇 가지 기본 제공 리소스 제한이 있다. 로그 쓰기 제한을 도입한 이유는 로그 백업이 들어오는 데이터를 포착할 ..

ODBC 드라이버를 사용하여 SQL Server에서 Azure CosmosDB 쿼리 실행

ODBC 드라이버를 사용하여 SQL Server에서 Azure CosmosDB 쿼리 실행 · Version : SQL Server, Azure CosmosDB Azure CosmosDB는 기존의 SQL Server와 같은 클래식 데이터베이스에서 CosmosDB 컬렉션을 조회할 수 있는 ODBC 드라이버를 제공한다. 이번 포스트에서는 Transaction-SQL을 사용하여 SQL Server에서 CosmosDB 컬렉션을 쿼리하는 방법을 설명한다. SQL Server에서 CosmosDB를 쿼리하는 이유는 무엇일까? CosmosDB는 문서 및 기타 비관계형 데이터 유형을 저장 및 검색하고, 필터링하고 정렬할 수 있는 SQL / API를 제공한다. 그러나 경우에 따라 GROUP BY, HAVING, 분석 기능이..

Azure SQL Managed Instance에서 로컬 스토리지 사용량 모니터링

Azure SQL Managed Instance에서 로컬 스토리지 사용량 모니터링 · Version : SQL Server, Azure SQL Managed Instance Azure SQL Managed Instance를 사용할때, 선택한 인스턴스의 vCore 및 예약 스토리지에 따라 사전에 정의된 스토리지 공간이 있다. 이번 포스트에서는 Managed Instance 스토리지 공간을 모니터링하는 방법에 대해서 알아본다. Managed Instance에서는 아래와 같은 제약이 있다. · 인스턴스의 스토리지 제한은 Azure Portal에서 선택할 수 있다. 범용은 8TB, 비즈니스 크리티컬은 4TB 보다 클 수 없다. · (범용 전용) 로컬 SSD 디스크 스토리지의 제한 – Managed Instanc..

SQL Server Enterprise Edition 에서 CPU를 40 Core 이상 사용하지 못하는 현상

SQL Server Enterprise Edition 에서 CPU를 40 Core 이상 사용하지 못하는 현상 · Version : SQL Server 호스트의 서버의 CPU가96 Core인 장비에서 SQL Server 2016 Enterprise Edition을 설치 후 사용하는데 CPU 를 40Core 이상을 사용하지 못하는 문제가 있었다. 처음에는 NUMA의 불균형이 발생하지 않았는지 의심했었지만, 증상을 보면 0번 코어부터 39번 코어까지만 정확히 사용하는것을 확인할 수 있었다. 여러가지 원인을 조사 결과 해당 문제는 SQL Server의 라이선스 업데이트로 해결 되었다. MS의 라이선스 정책은 좀 많이 어려운 편인데 (서비스를 제공하는 형태에 따라 다양한 라이선스가 있음, 라이선스의 자세한 내용은..

SQL Server Agent Job에서 sysploicy_purge_history 작업실패

SQL Server Agent Job에서 sysploicy_purge_history 작업실패 · Version : SQL Server SQL Server 2008 이후로 SQL Server Agent Job에서는 syspolicy_purge_history라는 job이 등록되어 있다. 해당 Job은 MSDB에 쌓여 있는 히스토리를 정리하는 작업을 진행한다. 가끔 해당 Job 실행시 아래와 같은 오류가 발생할 수 있는데, 오류가 무엇인지 확인해보고 해결하는 방법에 대해서 살펴 본다. Job이 실패하였을때, 해당 로그를 살펴보면 아래와 같은 오류로그가 발생하였다. Date 7/29/2019 1:23:41 PM Log Job History (syspolicy_purge_history) Step ID 3 Serv..

MySQL/MariaDB 파일 읽기/쓰기시 발생할 수 있는 secure-file-priv 오류

MySQL/MariaDB 파일 읽기/쓰기시 발생할 수 있는 secure-file-priv 오류 · Version : MySQL 5.7 MySQL에서 LOAD DATA 및 SELECT.. INTO OUTFILE, LOAD_FILE() 함수를 사용할 경우, 아래와 같은 오류와 함께 실행이 실패되는 경우가 있다. The MySQL server is running with the --secure-file-priv option so it cannot execute this statement 이러한 오류는 MySQL 시스템 설정 문제로, 보안과 관련이 있다. 즉, MySQL이 허용하는 경로의 위치에서만 파일을 읽고 쓸 수 있도록 지정된 것이며, 아래 스크립트를 통해서 현재 사용할 수 있는 경로를 확인할 수 있다. ..

MySQL, MariaDB 2019.07.24

MySQL/MariaDB ROW Size Limit

MySQL/MariaDB ROW Size Limit · Version : MySQL 5.7 SQL Server에서 사용하던 일부 데이터를 MySQL 서버로 마이그레이션 작업 진행중, 컬럼수가 많은 (또는 컬럼의 길이가 큰 테이블) 테이블이 MySQL에서는 아래와 같은 오류와 함께 테이블이 생성되지 않는 문제가 발생하였다. Error Code: 1118. Row size too large (> 1982). Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline. 해당 원인을 찾아본 결과, SQL Server의 경우 한 페이지의 크기가 8K로 고정이 되어있고, Row..

MySQL, MariaDB 2019.07.20

MySQL/MariaDB sql_mode 설정 변경으로 NULL 데이터 처리하기

MySQL/MariaDB sql_mode 설정 변경으로 NULL 데이터 처리하기 · Version : MySQL 5.7 MS SQL Server에서 BCP를 이용하여 데이터를 탭 구분형식의 텍스트 파일로 내려받고 MySQL에서는 Bulk load(LOAD DATA INFILE)를 사용하여 데이터를 복원할때 아래와 같은 에러가 지속적으로 발생하였다. Error Code: 1366. Incorrect decimal value … 이 문제는 Decimal 컬럼에 NULL값을 입력할때 MySQL의 유효성 문제로 에러가 발생한 것이다. 해당 컬럼은 NULL 허용 컬럼임에도 불구하고 지속적으로 동일한 문제가 발생하여, 해결 방법을 찾아본 결과 아래와 같은 sql_mode 변경으로 해결할 수 있었다. SET SESS..

MySQL, MariaDB 2019.07.06