프로덕션 코드에서 SELECT *
의 사용이 나쁜 관행으로 간주되는 이유는 무엇입니까? 프로덕션 환경에서 사용할 대안이 있습니까? 아니면 테이블의 모든 열을 개별적으로 선택해야합니까?프로덕션 SELECT * 문을 사용하는 성능?
답변
[*]은 모든 열을 효과적으로 선택합니다. 그러나 모든 열을 선택한다는 것은 많은 양의 데이터를 가져 오는 것을 의미하기 때문에 실제로 필요한 열만 선택하는 것이 좋습니다.
예를 들어 모든 ID 열이나 타임 스탬프 또는 날짜를 가져올 필요가 없을 수도 있습니다.하지만 제품 설명이나 고객 이름을 가져 오려고 할 수 있습니다. 그러나 그때조차도 매번 가져올 필요가 없을 수도 있습니다.
데이터베이스 호출에서 모든 열이 실제로 필요하면 성능에 영향을주지 않아야합니다.
SELECT * ...
을 자주 사용하고 하나 또는 두 개의 열만 사용하는 경우 하나 또는 두 개에만 관심이있을 때 모든 열을 반환하기 때문에 SELECT
문을 리팩토링 할 위치입니다.
열 이름을 선택하면 내 생각에 기존 SQL을 읽고 수정하는 것이 더 쉬워집니다.
SELECT *
을 사용하는 것은 최소한 SSIS와 관련하여 몇 가지 이유로 나쁜 실행입니다.
모든 열을 선택하는 경우 모두 필요하지 않으면 메모리 낭비이고 메모리는 SSIS를 빠르게 실행하는 마법입니다.
모든 열을 선택하지 않으면 SQL Server에서 색인을 사용하여 데이터를 더 빨리 반환하지 않습니다.
SSIS는 매우 메타 데이터 기반입니다. 따라서 소스가 SELECT *
인 경우 열이 테이블에 추가되면 소스 정의가 변경되고 메타 데이터가 더 이상 일관되지 않으므로 패키지가 실패 할 수 있습니다.
확실한 선택은 색인을 사용하지 못하게합니까? 테스트를 거쳤고 인덱스 사용을 저지하지 않습니다. – Paparazzi
- 1. MySQL에서 SELECT 문을 사용하는 경우
- 2. SELECT 문을 사용하는 MySQL 트리거
- 3. 여러 SELECT 문을 사용하는 SQL
- 4. SELECT 문을 사용하는 UPDATE 문
- 5. 오라클의 제어 파일에서 select 문을 사용하는 방법
- 6. Select 문을 사용하여 COUNT를 사용하는 SQL 쿼리
- 7. 검색어 날짜 select 문을 사용하는 범위
- 8. 함수 내에서 select 문을 사용하는 방법?
- 9. T-sql에서 IF에 select 문을 사용하는 방법
- 10. python 문을 SQLite에서 SELECT 조건으로 사용하는 방법?
- 11. SELECT INTO 문을 사용하는 SQL 쿼리
- 12. 실패한 SELECT 문을 롤백하거나 성공적인 SELECT 문을 커밋해야합니까?
- 13. select 문을 삭제로 변환
- 14. select 문을 사용하여 삽입
- 15. 는 select 문을 가입
- 16. 나중에 select 문을 저장하십시오.
- 17. 두 개의 Select 문을 %
- 18. select 문을 쓰는 방법은?
- 19. SELECT 문을 DELETE로 변경
- 20. 안드로이드에서 select 문을 실행하십시오.
- 21. SELECT 문을 역순으로 초기화하십시오.
- 22. SELECT 쿼리에서 준비된 문을 사용해야합니까?
- 23. 나는 SQL SELECT 문을 SQL SELECT 문
- 24. SELECT * 내가이 SELECT 문을 실행 문제가 있었다
- 25. 성능 문제보기에서 MYSQL SELECT
- 26. SQLite SELECT 성능 향상
- 27. mysql select 문을 PDO로 변환하려고합니다
- 28. select 문을 사용하여 문을 SQL 문을 삽입 할
- 29. SQL에서 여러 SELECT 문을 결합하는 방법
- 30. 이 Select 문에 대한 Delete 문을 찾으십시오.
몇 가지 이유 ** [여기] (http://stackoverflow.com/questions/16088576/query-index-for-dictionary-based-queries/16092198#16092198)를 읽어보십시오. –
[Aaron Bertrand] (http://stackoverflow.com/users/61305/aaron-bertrand)는 [이 기사] (http://sqlblog.com/blogs/)에서'SELECT * '사용과 관련된 몇 가지 문제를 썼습니다. aaron_bertrand/archive/2009/10/10/bad-habits-to-kick-using-select-omiting-the-column-list.aspx) – GarethD