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
운영게시판
최근게시물
MS-SQL Q&A 6982 게시물 읽기
No. 6982
함수 사용 질문입니다.
작성자
남현진(morningtak)
작성일
2016-05-30 11:17ⓒ
2016-05-30 11:31ⓜ
조회수
3,709

이미 만들어져있는 디비에 함수를 사용할까 말까로 고민하고있습니다.

두가지 재화 정보가있고 해당 재화를 지급하거나 차감할때 항상 거쳐야 하는 절차가 있는데..

대단한 절차는 아니고 어떤 재화 정보가 먼저 차감되고, 로그를 남기는등의 절차가 꼭 필요합니다.

그래서 함수를 만들까하는데... DB의 성능을 고려하면 함수는 좋지않다는 얘기를 들어서요.

함수를 하나 만들어서 사용하는게 성능상 좋을까요?

이왕이면 사용자 정의 함수를 사용하는것이 어떤 단점이 있는지 알려주시면 감사하겠습니다ㅎ

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

"DB의 성능을 고려하면 함수는 좋지않다."
여기서
"DB의 성능을 고려하면" 이라는 단서 조항을 을 뺀 채
"함수는 좋지않다." 라는 결론만 보시면 안됩니다.


성능에 크게 문제가 되지 않고 함수 사용의 장점을 취할 수 있다면?
사용자 함수를 만들어 사용하는게 좋은 거죠.


성능에 문제가 되는 경우는
  - 대량의 자료에 함수를 사용할 때
  - 자주 호출되는 쿼리(LOOP 안의 쿼리) 에 함수를 사용할 때
  - 즉, 소량의 자료에 사용할 때는 크게 문제되지 않습니다.


함수 사용이 좋은 경우는
  - 복잡한 로직을 구현할 때 > 쿼리의 단순화
  - 공통적으로 사용하는 로직 > 모듈화, 개발 편의성


간단한 로직이나, 내장함수 처리가 가능한 경우까지도
사용자 함수를 적용하는 것은 지양해야죠.

마농(manon94)님이 2016-05-31 16:28에 작성한 댓글입니다.

 좋은말씀 감사합니다 ㅜㅜ

결론적으로는 결국 함수가 아니라 sp로 만들어 사용하기로 결정했습니다.

여러가지 상황을 고려했을때 함수보다는 sp로 만드는게 훨씬 좋을것같아서요.

그렇게 하면서 트랜젝션 관리를 어떻게 해야되는지 조금 헷갈렸지만 지금은 해결봤습니다.

감사합니다 ㅎㅎ

남현진(morningtak)님이 2016-06-07 16:53에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
6989쿼리 질문드립니다. [2]
boco11
2016-06-10
3554
6986MS-SQL 컨버전
강형우
2016-06-01
3576
6984특정문자열 이전까지의 데이타 가져오기 [2]
둥둥이
2016-05-31
3755
6982함수 사용 질문입니다. [2]
남현진
2016-05-30
3709
6979쇼핑몰관리하는 C, MSSQL 연동 중
초보
2016-05-22
3522
6978group by 해당조건은 빼고싶어요 [1]
김우성
2016-05-21
3660
6977MSSQL ldf 파일이 갑자기 늘어납니다
김성필
2016-05-20
3784
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2023 DSN, All rights reserved.
작업시간: 0.051초, 이곳 서비스는
	PostgreSQL v16.1로 자료를 관리합니다