반응형

데이터를 대량으로 조회하는 쿼리를 작성 시 설정에 fetchSize 를 지정해 줄 경우 성능이 눈에 띄게 향상되는 것을 볼 수 있다.

 

<select id="selectLargeList" resultType="dataVO" fetchSize="1000">
     select
          column1, column2
     from test_table
</select>

 

fetchSize 에 데이터를 얼만큼씩 가져올 지 설정해주면 WAS와 DB 트래픽을 줄여줘 성능이 향상된다.

반응형

'DEV > DB' 카테고리의 다른 글

[PostgreSQL] 숫자 양수, 음수, 0 판단하는 SIGN 함수  (0) 2023.07.24
반응형

SIGN 함수를 이용하면 값이 양수인지 음수인지 혹은 0 인지를 판단할 수 있습니다.

 

SIGN(숫자)

 

숫자가 양수일 경우 1, 음수일 경우 -1, 0일 경우 0, NULL 일 경우 NULL 값을 반환합니다.

 

예시 입니다.

select
	sign(200),
	sign(0),
	sign(-5000),
	sign(null)
from dual

 

위의 쿼리를 실행하면 다음과 같은 결과를 얻을 수 있습니다.

 

반응형
반응형

PostgreSQL 에서 숫자나 날짜, 시간 데이터를 생성하는 방법입니다.

 

generate_series(시작, 종료, [단계 혹은 인터벌])

 

을 이용하여 간단하게 데이터를 출력해 줄 수 있습니다.

 

select * from generate_series(1, 5);
select * from generate_series(1, 5, 1);

위의 쿼리를 실행하면 아래와 같은 결과를 출력합니다.

 

select * from generate_series(-4, 3);

음수도 생성합니다.

 

select * from generate_series(-4, 3, -1);

하지만 위와 같이 숫자가 커지는 데 단계를 음수로 지정할 경우 아무런 데이터도 반환되지 않습니다.

반대로 시작보다 종료인 수가 작은 데 단계를 양수로 지정하거나 지정하지 않을 경우에도 아무런 데이터도 반환되지 않습니다.

 

select 
	current_date + s.a date
from generate_series(0, 14,7) as s(a)

위와 같이 생성한 데이터를 이용해 날짜 데이터도 생성하는데 활용 가능합니다.

 

실행결과 :

 

 

select * from 
generate_series('2023-07-22 00:00'::timestamp, '2023-07-25 08:00'::timestamp, '10 hours');

 

실행결과 :

반응형
반응형

PostgreSQL 에서 여러 컬럼 중 최대값, 최소값을 구하는 방법입니다.

 

row 간의 값을 비교하는 MAX, MIN 함수의 최대값, 최소값 구하는 방식이랑 다르게

여러 컬럼간의 값을 비교하여 컬럼 중 제일 큰 값, 작은 값을 구할 수 있습니다.

 

최대값 : GREATEST(컬럼1, 컬럼2, ..., 컬럼n)
최소값 : LEAST(컬럼1, 컬럼2, ..., 컬럼n)

 

위의 그림은 설명을 위한 테스트 테이블 입니다.

 

select 
	greatest(column1, column2, column3, column4, column5) greatest_value, -- 최대값
	least(column1, column2, column3, column4, column5) least_value -- 최소값
from 
	(select 
		1 column1,
		2 column2,
		3 column3,
		4 column4,
		1 column5
	from dual
	union all
	select
		2 column1,
		3 column2,
		3 column3,
		4 column4,
		5 column5
	from dual)A

 

위의 쿼리를 실행하면 아래와 같은 결과가 나오게 됩니다.

row 별로 각각 지정해준 컬럼 값들 중 제일 큰 값, 제일 작은 값을 출력합니다.

 

 

 

 

반응형
반응형

PostgreSQL 에서는 CTE 라고 하는 Common Table Expression 을 이용하여 쿼리 결과를 일시적으로 저장해

WITH 구문으로 간단하게 구현하는 방법을 사용할 수 있습니다.

WITH temp_table AS (
	SELECT
		id,
		name,
		age
	FROM person
)
SELECT * FROM temp_table;

 

혹은 VALUES 구문을 사용해 임시로 테이블을 만들어서 사용할수도 있습니다.

 

WITH test_table(name, age) AS (
	VALUES
	('홍길동', 29),
	('김개똥', 33)
)
SELECT * FROM test_table;

 

반응형
반응형

자바에서 이전 페이지 URL 주소를 가져오는 방법입니다.

 

String access_url = request.getHeader("referer");

 

반응형
반응형

PostgreSQL 에서는 INSERT, UPDATE, DELETE 후 해당되는 행을 간단하게 조회할 수 있다.

실행 쿼리 뒤에 RETURNING * 만 추가해주면 된다.

 

ex)

UPDATE TEST_TABLE

SET NAME = '김길동'

WHERE NAME = '홍길동'

RETURNING *;

 

위의 쿼리를 실행하면 NAME이 홍길동에서 김길동으로 업데이트 된 ROW가 출력된다.

SELECT * FROM TEST_TABLE WHERE NAME = '김길동';

과 같은 결과를 반환한다.

 

* 자리에 원하는 컬럼만 넣어서 사용 가능하다.

반응형
반응형
  • 뒤로가기
<a href="javascript:history.back();">뒤로 가기</a>

 

혹은 아래와 같이 따로 함수를 만들어서 사용 가능합니다.

<script type="text/javascript">
	var goBack = function(){
    	window.history.back();
        // history.back(); 처럼 window. 생략 가능
    }
</script>
<a href="#" onclick="goBack();">뒤로</a>

 

  • 앞으로 가기
<a href="javascript:history.forward();">앞으로 가기</a>

 

  • 원하는 페이지 수만큼 이동하기

window.history.go() 함수를 이용하여 원하는 페이지 수만큼 이동을 할 수 있다.

<script type="text/javascript">
	
    // 앞으로 n 페이지만큼 이동
    var goForward = function(n){
    	window.history.go(n);
    }
    
    // 뒤로 n 페이지만큼 이동
    var goBack = function(n){
    	window.history.go(-n);
    }
    
</script>

 

window.history.go(n);

n 값이 양수일 경우에 앞으로 가기, n 값이 음수일 경우에는 뒤로 이동하게 됩니다.

반응형

+ Recent posts