database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
Oracle
Informix
ㆍSybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
Sybase Q&A 2017 게시물 읽기
No. 2017
인덱스 컬럼에 걸었을 경우 index를 못타게 막는 함수설명좀 부탁드립니다..^^;;
작성자
천적
작성일
2007-08-25 10:21ⓒ
2007-08-25 10:32ⓜ
조회수
6,104

rtrim같은것을 인덱스 컬럼에 걸었을 경우 무조건 index를 못타게 막는 역할을 하나요??

substring처럼 아애 컬럼의 값을 변형하는 경우에는 인덱스를 못타게 하는건 알고 있었지만..

like처럼 변형을 가하지 않는 경우는 인덱스를 타는데 문제가 없다고 알고 있었고 rtrim도 특별히 컬럼의 값을 변형하는게 아니라고 

알고 있었는댕 오늘 인터넷을 보다가 rtrim 이 인덱스를 타지 못하게 하는 함수라는 글이 있어서요..

왜 그런건가요??

괜찮으시면 인덱스를 못타게 막는 함수에 대한 전체적인 정리하고 계신분 있으시면..^^;; 공유좀...^^;;

그럼 수고하세요~~~^^;;

이 글에 대한 댓글이 총 2건 있습니다.

대부분 함수를 쓰면 안됩니다.(string 관련)


예를 들면


rtrim도


데이타가 '     A','    B'

이렇게 되어 있고 이게 index가 걸려 있다면


select rtrim(a) from A

하심 index를 못타는게 맞습니다~~

지연님이 2007-08-27 09:07에 작성한 댓글입니다. Edit

rtrim(' ')는 null 입니다

rtrim은 컬럼의 값을 변형시킵니다 


인덱스를 타야되는 컬럼에 함수를 사용하는 경우는 인덱스를 탈 수 없습니다.


컬럼에 함수를 사용하기보다 조건값을 변경하는 방법을 찾아야될 듯


ex)

select * from #temp where a + b = 20

위문장은

select * from #temp where a  = 20 - b 로 변경


select * from #temp where convert(char(8), a, 112) = '20070830'

위문장은

select * from #temp where a  between '20070830 00:00:00' and '20070830 23:59:59'


1



영빈~(backfish)님이 2007-09-04 17:08에 작성한 댓글입니다.
이 댓글은 2007-09-04 17:09에 마지막으로 수정되었습니다.
[Top]
No.
제목
작성자
작성일
조회
2021스토어드 프로시저 연속 호출시 lock 걸리는 현상 [2]
양경욱
2007-08-27
7353
2019뷰 생성 확인 [1]
이성욱
2007-08-26
6121
2018bcp bulk copy 질문입니다 [2]
비기닝
2007-08-25
6724
2017인덱스 컬럼에 걸었을 경우 index를 못타게 막는 함수설명좀 부탁드립니다..^^;; [2]
천적
2007-08-25
6104
2014ASE JAVA에서 update가 안되네요. [3]
난해
2007-08-20
6157
2013ASE update .. subquery 지원이 안되나요? [3]
난해
2007-08-20
7047
2011rtrim 함수 이용시 index를 못타게 하나요? [1]
천적
2007-08-17
5964
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.020초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다