본문 바로가기

반응형

DataBase

(16)
COUNT(*) 과 COUNT(1) 성능차이 | ChatGPT 'COUNT(*)'과 'COUNT(1)'은 둘 다 테이블의 레코드 수를 센다. 성능 차이는 무시할 수 있는 정도 그러나 이 두 가지 표현 간의 성능 차이는 일반적으로 무시할 수 있을 정도로 작다. 어떤 것을 사용하더라도 실제로 성능상의 큰 영향을 미치지 않을 것이다. 데이터베이스 시스템은 `COUNT(*)`와 `COUNT(1)`을 대부분 동일한 방식으로 처리한다. COUNT(*) 는 레코드 수만 세는 것 그 이유는 `COUNT(*)`는 모든 컬럼을 선택하는 것이 아니라 레코드 수만을 세는 것이기 때문에, `COUNT(1)`과 같이 간단한 상수를 사용하는 것과 비슷한 처리 방식을 채택하기 때문이다. 가독성과 코드 일관성 고려 할 것 따라서 성능 차이를 기대하기보다는 가독성과 코드 일관성을 고려하여 둘 중 ..
MSSQL 에서 1,0,NULL 정렬 결과 순서는? | ChatGPT NULL 은 가장 작은 값으로 취급 된다. ASC : NULL, 0, 1 DESC : 1, 0, NULL 출처 | ChatGPT
인덱스 사용 하는 게 효율적일까 | ChatGPT 효율적으로 인덱스를 사용하는 방법 인덱스를 추가하는 것이 효율적인지 여부를 결정하기 위해서는 다음 사항을 고려해야 한다. 1. 쿼리 패턴 어떤 종류의 쿼리가 자주 실행되는지, 어떤 컬럼을 이용하여 데이터를 검색하는지 파악하라. 자주 사용되는 쿼리가 특정 컬럼을 이용하여 데이터를 검색하는 경우 해당 컬럼에 인덱스를 추가하는 것이 성능 향상에 도움이 될 수 있다. 2. 데이터 양과 분포 데이터 양과 데이터 값의 분포에 따라 인덱스의 효과가 달라진다. 값의 분포가 넓고 중복이 적은 경우 인덱스가 더 유용할 가능성이 높습니다. 그러나 값의 중복이 많거나 데이터 양이 적을 경우 인덱스 추가가 오히려 성능을 떨어뜨릴 수 있습니다. 3. 업데이트/삽입/삭제 작업 인덱스를 추가하면 데이터 변경 작업의 성능이 저하될 수..
면접 질문 | 정규화 개념에 대해 설명해 보시오 정규화에 대해 설명해 보시오. 네? 그게 뭔데요? 들어는 봤는데, 모르겠는데요? 정규화 개념과 예시 제1정규화 - 한 컬럼에 하나의 데이터만 존재하도록 작업 - 예: 콤마로 구성된 데이터 대신, 독립된 테이블로 구성 제2정규화 - 현재 테이블의 주제와 관련 없는 컬럼을 다른 테이블로 빼는 작업 - composite primary key: 합하면 pk 역할 가능 - partial dependency: composite primary key에 종속 - 즉, partial dependency 제거 - 예: 회원 테이블에 프로그램과 프로그램의 가격이 포함한 경우, 프로그램 테이블 생 제3정규화 - 일반 컬럼에만 종속된 컬럼, 즉 기본키와 상관 없는 컬럼을 다른 테이블로 빼는 작업 - 예: 프로그램 테이블에 강사..
면접 질문 | Clustered Index 와 NonClustered Index 를 설명하시오 | ChatGPT 클러스터 인덱스 Clustered Index 테이블 하나 당 하나의 클러스트 인덱스를 갖을 수 있다. 테이블의 물리적 순서를 바꾼다. 테이블 데이터는 클러스터 인덱스에 의해 정렬된다. 클러스터 인덱스로 정의된 컬럼은 데이터의 물리적 순서를 지정한다. 클러스터 인덱스를 만들거나 수정하면 테이블 레코드 레이아웃을 재구조화해야 한다. 따라서 많은 비용이 발생한다. 주로 기본키가 사용된다. 기본키가 없는 경우에 처음 데이터가 삽입 될 때 SQL Server에서 자동으로 고유한 클러스터를 생성한다. 넌클러스터 인덱스 NonClustered Index 테이블 하나 당 여러 넌클러스트 인덱스를 가질 수 있다. 넌클러스터 인덱스는 분리된 데이터 구조체이다. 즉 테이블의 물리적 순서를 바꾸지 않는다. 데이터 검색을 위해..
MSSQL 에서 입력한 문자 순으로 정렬 하는 방법 (chatGPT) 입력한 문자 기준으로 결과를 보고 싶을 때 CHARINDEX 를 사용한다. CHARINDEX ( expressionToFind , expressionToSearch [ , start_location ] ) expressionToFind 찾으려는 시퀀스가 포함된 문자 식 입니다. expressionToFind는 8,000자로 제한됩니다. expressionToSearch 검색할 문자 식입니다. start_location 검색이 시작되는 integer 또는 bigint 식입니다. start_location이 지정되지 않았거나 음수 값 또는 0 값이면, expressionToSearch의 시작 부분에서 검색이 시작됩니다. DECLARE @ITEM_NO_LIST VARCHAR(100) = '34,23,63,44..
WITH (READUNCOMMITTED) 와 WITH (NOLOCK) 차이 | ChatGPT WITH (READUNCOMMITTED) Microsoft SQL Server와 관련이 있습니다. 트랜잭션이 다른 동시 트랜잭션으로부터 커밋되지 않은 데이터를 읽을 수 있도록 허용합니다. "더티 리드(dirty read)" 격리 수준이라고도 알려져 있습니다. 커밋되기 전에 동시 트랜잭션이 수행한 변경사항을 읽을 수 있으므로 일관성이 없거나 정확하지 않은 데이터를 읽을 수 있습니다. WITH (NOLOCK) Microsoft SQL Server의 쿼리 힌트와 관련이 있습니다. 특정 SELECT 문에서 "WITH (NOLOCK)" 쿼리 힌트를 사용하여 커밋되지 않은 데이터를 읽을 수 있도록 허용합니다. "WITH (READUNCOMMITTED)"와 유사하게 일관성이 없거나 정확하지 않은 데이터를 읽을 수 있..
MSSQL SP 프로시저 쿼리 검색 방법 아래 쿼리에 검색어를 입력하여 SP 프로시저를 검색 할 수 있다. SELECT OBJECT_NAME(OBJECT_ID) FROM SYS.PROCEDURES WHERE OBJECT_DEFINITION(OBJECT_ID) LIKE '%검색어%' ORDER BY OBJECT_NAME(OBJECT_ID)

반응형