반응형

캐시

    Redis Keys 명령어의 대체 Scan 설명

    Redis에서 Keys 명령어는 성능상으로 문제가 있다. Redis의 One Thread 정책으로 인해서 해당 작업을 처리하기 위해서 서버가 멈춰버린다. 그래서 이를 대안하기 위해서 Redis의 Scan이라는 기능을 사용할 수있다. Scan은 cusor를 기반으로 동작하는 Itorator이다. 처음시작은 scan 번호를 0으로 지정해서 시작한다. 그러면 두 개의 값을 반환을 하는데 첫번째 값은 다음 cursor의 번호이고 그 다음 값은 키값들이 출력된다. 다음 데이터를 찾기위해서는 1번 값에서 반환된 커서 값을 이용해서 검색하면 된다. (scan 9) 그리고 scan 후 나온 다음 cursor의 값이 0인경우 그 이후에 값이 없음을 의미한다. Option #Count Option scan은 모든 반복에서..

    오라클 SGA 캐시 탐색 메커니즘 정리

    Direct Path I/O를 제외한 모든 블록 I/O는 메모리 버퍼캐시를 경유한다. 버퍼캐시의 구조는 해시 구조로 관리된다. 해시 함수를 통해서 나온 결과를 사용하여 해시체인(Bucket)을 찾고 그 해시체인에 연결되어 있는 버퍼 정보를 사용하여 버퍼 캐시 정보를 찾아 갈 수 있다. 만약 해시체인을 찾아주는 해시 알고리즘이 mod(x, 5)라고 할 때, 25번째 블록을 찾고 싶은 경우 해시함수를 사용해서 5로 나누고 나온 나머지 0이 해시체인 0번째를 의미한다. 그 해시체인에는 버퍼 헤더들이 들어있다. 25라는 버퍼헤더를 찾고 그 버퍼헤더가 가리키고 있는 버퍼 블록을 접근하여 데이터를 탐색하면 된다. 만약 27번째 블록을 읽으려고 해시함수를 거쳐서 2번째 해시체인에 갔으나, 버퍼 헤더 27이 없다면??..

    바인드 변수를 이용한 오라클 SQL 튜닝 소개

    저번 시간에 내부 프로시저를 재사용해야 쿼리 수행시 비용이 감소한다고 공부하였다. 그렇게 재사용성을 높이기 위해서 어떻게 해야하는지 알아보자. 바인드 변수 사용 사용자 정의 함수/프로시저, 트리거등은 별도의 이름이 있어 생성하여 계속해서 재사용할 수있다. 하지만 SQL은 이름이 없어서 내부 프로시저에 저장하여 사용한다. 그렇듯 SQL은 별도의 이름이 아닌 그 자체가 이름처럼 고유의 값으로 사용된다. 그럼 공백이나 대,소문자가 달라도 다른 객체인가? 아래 쿼리를보자. 12345678select * from t where empno = 7695;select * from t where empno = 7695 ; select * from T where empno = 7695;select * from t WHER..

    스프링 CacheManager Ehcache

    스프링에는 데이터를 캐시로 보관할 수 있는 캐시 기능을 제공한다. 그 중 대표적으로 사용되는 Ehcache(ehcache-spring-annotation)에 대해 알아보자. 이를 사용하는 가장 대표적인 이유는 다음과 같다. 1. 꾸준하게 동일한 데이터 2. 조회하여 데이터를 가지고 오는데 비용이 많이 소모되는 경우 [설정방법] pom.xml 123456net.sf.ehcacheehcache2.10.4Colored by Color Scriptercs applicationContext.xml 수정 applicationContext-cache.xml 추가 1234567891011121314151617181920212223 Colored by Color Scriptercs Ehcache 설정 파일 생성12345..

반응형