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
운영게시판
최근게시물
MySQL Q&A 27814 게시물 읽기
No. 27814
동적쿼리시 성능 및 질문 입니다.
작성자
정혁채(postgood)
작성일
2008-09-30 17:42
조회수
3,856

질문 1

프로시져를 만들 샘플입니다. 그런데 concat 함수에서 문자열 연결하는 부분에서 변수를 이용하면 문자열이 연결이 안됩니다.

declare t_table varchar(100);
declare t_temp varchar(100);

 set @t_table = 'testtable';
 set @t_temp = 'select * from ';
  select @t_temp := concat(@t_temp, @t_table);
 select @t_temp;

결과물이 'select * from ' 으로만 출력이 됩니다.

이리저리 고민하다가
 
  set @t_temp = concat(@t_temp, @t_table); ==>   select @t_temp := concat(@t_temp, @t_table);
 변경을 해봤더니 아무 값도 담기지 않습니다.

이럴 경우 어떤 방식으로 처리하나요?


질문 2
프로시져에서 동적 쿼리가 만들어 질 경우 

CREATE PROCEDURE list (in v_use_gb char(1), in v_text char(50))
BEGIN

  declare stmt varchar(500);
  set @stmt = "select * from tablename where a = ?  and b = ?"
  prepare stmt from @stmt;
  execute stmt using @v_use_gb, @v_text;
 
end

이 방식과
CREATE PROCEDURE list (in v_use_gb char(1), in v_text char(50))
BEGIN

  select * from tablename where a = v_use_gb  and b = v_text
end

두가지 방식중 어느것이 속도가 더 좋은지요
제가 볼땐 두번째 방식이 훨시 좋을 거라 보고 있습니다만 실제 어떤지 모르겠네요


[Top]
No.
제목
작성자
작성일
조회
27818from 절에 여러 테이블을 쓰고 싶습니다. [1]
다라나
2008-10-05
4063
27817select 만 하는 DB 에서 쿼리 가장 빠르게 할수 있는 방법이 궁금합니다. [1]
정민채
2008-10-04
3993
27815긴 String 값을 일정한 단위로 쪼게서 저장하는 방법 있나요? [2]
초보
2008-10-01
3952
27814동적쿼리시 성능 및 질문 입니다.
정혁채
2008-09-30
3856
27813판매일 별 제품 판매 개수 및 제품별 거래 현황 구하기...인데 [1]
Psycho
2008-09-30
3853
27812다시 질문드립니다. 트랜잭션과 락킹 [2]
2008-09-26
4019
27811mysql limit 관련 질문입니다.
바다소년
2008-09-26
4669
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.016초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다