본문 바로가기
728x90
반응형

oracle3

WHERE INDEXを使用してみましょう 数値カラムに文字型の数値を入力すると、 通常、インデックスを使用することができる。 ex)select* from Employee where EmpNo= '90005' EmployeeテーブルのEmpNo列が数値型の場合、 オプティマイザ「90005」文字型を数値型に自動的に変えてくれ 通常Indexを使用するようにしてくれる。 しかし、 文字型のカラムの数を数値タイプで SELECT時Full Scanが起こる。 ex)select* from Employee DeptNo=300 DeptNoカラムが文字型の場合、DeptNoカラムが数値型で 変換されFull Scan発生 2020. 11. 1.
BTree 인덱스 튜닝 B*Tree 인덱스를 사용하려면 인덱스의 선두 컬럼이 조건절에 적용되어야 한다. 그렇지 않을 경우 옵티마이저는 인덱스 전체를 스캔하거나 테이블 전체를 스캔하게 된다. 선두 컬럼이 조건절에 적용되더라도 인덱스 사용을 못하는 경우가 있는데 아래와 같다. 1. select * from Employee where substr(name, 1,3) = 'LEE' 2. select * from Employee where name 'LEE' 3. select * from Employee where name is not null 위 경우 정상적인 인덱스 범위 스캔이 불가능하지만 인덱스 사용자체가 불가능한건 아니라 Index Full Scan은 가능하다. SQL Server 서버는 is null 검색 시에도 인덱스를 사용.. 2020. 11. 1.
Oracle/MSSQL SELECT 시 NOLOCK -Oracle SELECT * FROM TABLENAME NOLOCK -MSSQL SELECT * FROM TABLENAME WITH(NOLOCK) -의미 Oracle : 다른 클라이언트에서 SELECT하거나 할때 문제되지 않고 SELECT 시점에 COMMIT된 건만 SELECT 가능 MSSQL : 테이블에 변경이 일어났을 경우 커밋되지 않으면 커밋될때까지 기다리는데 커밋되지 않은 상태의 데이터를 SELECT한다. 2020. 10. 29.
728x90
반응형