반응형 Sql Server10 SQL Server 성능 최적화 쿼리 작성 방법과 예제 EXPLAIN SELECT * FROM orders WHERE customer_id = 123; 안녕하세요, 데이터베이스 개발자 여러분! SQL Server의 성능을 향상시키기 위해서는 쿼리 작성과 최적화가 중요한 요소입니다. 이번 글에서는 SQL Server의 성능을 향상시키기 위한 쿼리 작성 방법과 예제를 자세히 알아보겠습니다. 1. 인덱스 활용하기 인덱스는 데이터 검색 속도를 향상시키는 데 중요한 역할을 합니다. 특히 WHERE 절에 자주 사용되는 컬럼에 인덱스를 생성하면 성능 향상을 기대할 수 있습니다. 예제: 주문 테이블의 customer_id 컬럼에 인덱스를 생성하여 해당 고객의 주문을 빠르게 검색할 수 있습니다. CREATE INDEX idx_customer_id ON orders(custo.. Sql Server 2023. 8. 21. Select 쿼리 속도 개선 방법 1. 대상 : Select * From 테이블명과 같이 FullScan으로 Select를 할경우에 해당합니다. 2. 개선방법 : Select * From 테이블명 With (NoLock)으로 변경해서 검색성능을 높여서 검색하면 속도 개선이 가능합니다. 3. 그밖에 : Join을 할 경우에는 아래와 같이 설정합니다. Select * From 테이블1명 With (NoLock) inner join 테이블2명 With (NoLock) on 테이블2명.컬럼명 = 테이블1명.컬럼명 Sql Server 2022. 5. 31. Sql Server 사용자(유저)에 데이터베이스를 매핑시 에러가 발생 경우 대처 방법 1.에러코드 : Microsoft SQL Server Error 15023(신규유저 아이디가 test인 경우 에러메세지) 2.원인 : 신규유저 등록 및 기존 유저 삭제시에 매핑 정보가 남아 있을 경우에 발생 3.해결방법 : sp_change_users_login 쿼리 실행 use [데이터베이스명] go exec sp_change_users_login 'UPDATE_ONE', [유저명], [로그인명] go Sql Server 2022. 5. 30. Sql Server 신규유저로 로그인시에 에러가 발생할 경우 대처 방법 1.에러코드 : Microsoft SQL Server Error 18456(신규유저 아이디가 test인 경우 에러메세지) 2.원인 : SQL Server Management Studio의 속성에서 Security메뉴를 선택해서 보이는 Server Authentication설정이 Windows Authentication mode으로 되어 있을경우 3.해결방법 : SQL Server Management Studio의 속성에서 Security메뉴를 Server Authentication설정을 SQL Server and Windows Authentication mode으로 변경해서 재시작 Sql Server 2022. 5. 28. Identity속성을 가진 컬럼이 존재하는 테이블의 Insert into Select 일반적인 서로 다른 서버에서 같은테이블을 복사하는 과정에서는 Insert into Select문만으로 테이블 데이터를 조회해서 복사가 가능합니다. insert into 테이블명 Select * From 서버명.dbo.테이블명 예외로 Identity속성의 컬럼이 포함된 테이블은 일반적인 Insert into Select문을 실행시키면 에러가 발생합니다. An explicit value for the identity column in table '테이블명' can only be specified when a column list is used and IDENTITY_INSERT is ON. 하지만 테이블 설정과 컬럼을 모두 쿼리에 포함시키면 복사가 정상적으로 이뤄집니다. SET IDENTITY_INSERT .. Sql Server 2021. 12. 15. Linked Server 작성방법 1. 서버 정보등록 EXEC sp_addlinkedserver @server = '', --링크서버명 @srvproduct = '', @provider = 'SQLNCLI', -- 프로바이더명 @datasrc = '192.168.5.10'; -- IP와서버명 2. 로그인 정보등록 SQL Server 인증의경우 EXEC sp_addlinkedsrvlogin @rmtsrvname = '', --링크서버명 @useself = 'FALSE', --로그인명과 패스워드사용시에는 FALSE @locallogin = '', --로컬서버상의 로그인명 @rmtuser = '', --로그인명 @rmtpassword = ''; --패스워드 Windows 인증의경우 EXEC sp_addlinkedsrvlogin @rmtsrvn.. Sql Server 2021. 12. 13. 기존 테이블에 컬럼추가 및 컬럼순번 조정방법 기존에 사용하던 테이블에 컬럼추가가 발생했을경우에 추가 및 순번을 지정할때 유용할수 있습니다. 1.작업순서는 아래와 같습니다. ①기존테이블의 데이터를 Select(조회)해서 #temp테이블에 insert(저장)합니다. ②기존테이블을 Drop(삭제)합니다. ③컬럼이 추가된 신규테이블을 Create(생성)합니다. ④#temp에 저장된 데이터를 Select(조회)해서 신규테이블에 Insert(저장)합니다. ⑤#temp을 Drop(삭제) 2.샘플코드 --temp테이블 생성 SELECT * INTO #temp FROM 테이블명 --기존테이블 삭제 DROP TABLE 테이블명 --컬럼이추가된 신규테이블 등록 CREATE TABLE 테이블명 { 기존컬럼명, 데이터타입, NULL여부 추가칼럼명, 데이터타입, NULL여.. Sql Server 2021. 7. 7. 데이터베이스의 모든 테이블 삭제 기존에 생성된 모든 테이블을 일괄적으로 삭제할 경우가 발생했을때 유용하게 사용됩니다. exec sp_MsForEachTable 'DROP TABLE ?' sp_MsForEachTable함수는 현재접속한 데이터베이스의 모든테이블을 검색해서 ?에 테이블명을 대입해주는 함수입니다. 유의사항으로는 남기고 싶은 테이블이 있을경우에는 절대 사용하시면 안됩니다. Sql Server 2021. 5. 29. Visual Studio에서 DBML갱신방법 Visual Studio에 sql server를 Linq sql으로 사용시에 연동하는 DBML은 처음 생성할때의 정보가 sql server의 갱신으로 발생된 사항은 자동으로 갱신이 안되서 수동으로 갱신을 해야하는데 그 방법을 소개하려고 합니다. ①서버탐색기에서 연결되어있는 sql server를 선택합니다. ②오른쪽마우스 클릭후에 최신정보로갱신 메뉴를 클릭합니다. ③DBML파일을 열어서 갱신할 테이블을 삭제하고 서버탐색기의 sql server에서 갱신할 테이블을 선택후 Drag&Drop으로 복사합니다. ③프로젝트를 저장한후에 빌드를 실행합니다. 이후에는 자동으로 변경된 데이터베이스의 정보가 최신상태로 업데이트됩니다. Sql Server 2021. 5. 29. Sql Server Index 갱신 및 확인 1.Sql Server의 테이블 단위 Index 갱신 작업 DBCC DBREINDEX(테이블명) 2.Sql Server의 테이블 단위 Index 갱신 결과확인 DBCC SHOWCONTIG (테이블명,INDEX명) 3.Sql Server의 테이블 단위 Index 현황확인 UPDATE STATISTICS 테이블명 Sql Server 2021. 3. 18. 이전 1 다음 반응형