DB (6) 썸네일형 리스트형 [MSSQL] 프로시저 프로시저란? SQL SERVER에서 제공하는 프로그래밍기능으로 쿼리문들의 집합이라 할 수있다. 쿼리문을 하나의 함수 형식으로 만들어 어떠한 동작을 일괄적으로 처리하는 용도로 사용된다. 사용되는 이유 1. SQL SERVER의 성능을 향상시켜준다. 프로시저를 처음에 실행하면 컴파일 단계를 거쳐서 결과값을 캐시에 저장하게 된다. 이 후에 동일한 SP(Stored procedure)를 실해하면 캐시에 저장된 값을 가져와 사용하여 실행속도가 빨라진다. 2. 유지보수 및 재활용 Java, C#등으로 만들어진 응용프로그램에서 직접 SQL문을 호출하지 않고 SP의 이름을 호출하도록 설정해 사용하는 경우가 많은데, 이 때 개발자는 수정요건이 발생할 때 코드 내 SQL문을 건드리는 게 아니라 SP파일만 수정하여 유지보수.. N+1 문제 및 해결법 Spring JPA를 사용하다보면 쉽게 마주할 수 있는 N+1 쿼리에 대해 원인과 해결 방법에 대해서 알아보려한다. N+1? JPA의 Entity 조회 시 내부에 존재하는 다른 연관관계에 접근할 때 또 다시 한번 쿼리가 발생하는 비효율적인 상황을 일컫는 말이다. 1번의 쿼리를 날렸을 때 의도하지 않은 N번의 쿼리가 추가적으로 실행되는 것을 의미한다. 위의 글만 본다면 어떤 상황인지 알기 어려우니 N+1설명 때 가장 많이 사용되는 post예시를 들어보겠다. N+1 발생 케이스 예시로 게시글에 대한 테이블을 post라고 두고, post에 달린 댓글들을 command라는 테이블이라 지칭하자. 한 post에는 여러 개의 command가 달릴 것이다. 1. 즉시 로딩 (fetchType.EAGER)후 findAl.. SQL 기본 문법 정리 2 - DCL, TCL DCL(Data Control Language, 데이터 제어 언어) 데이터를 관리하고 접근하는 권한을 다루는 언어 일부에서는 DCL 에서 트랜잭션을 제어하는 명령인 COMMIT 과 ROLLBACK 만을 따로 분리해서 TCL (Transaction Control Language) 라고 표현하기도 한다. Commit : DML에 의해 조작된(추가, 수정, 삭제) 내용을 확정 처리 Rollback : 데이터를 Commit 하기전에 조작된(추가, 수정, 삭제) 내용을 원상복구 Grant : 데이터베이스 사용자에게 사용 권한 부여 Revoke : 데이터베이스 사용자의 사용 권한 회수 트랜잭션이란? 데이터베이스의 논리적 연산단위, 분할할 수 없는 최소의 단위, 말 그대로 데이터베이스의 상태를 변화시키기 해서 수행하.. SQL 기본 문법 정리 1 - DDL, DML 오늘은 어제 공부했던 DDL / DML / DCL의 기본 문법을 정리할 예정이다. DDL(Data Definition Language, 데이터 정의 언어) CREATE : 테이블 생성 ALTER : 테이블 변경 RENAME : 테이블명 변경 DROP : 테이블 삭제 TRUNCATE : 데이터의 모든 내용 삭제 CREATE 데이터 테이블 생성 시 사용되며 사용예시는 아래와 같다. CREATE TABLE 테이블명( , ....) CREATE TABLE 테이블명( id INT AUTO_INCREMENT NOT NULL PRIMARY KEY, name CHAR(20) NOT NULL, age INT NOT NULL ); 사용할 데이터 타입은 아래를 참고하면 된다. 제약조건은 아래와 같다. 구분 설명 PRIMAR.. SQL 기본 구문 SQL은 Structured Query Language(구조적 질의 언어)의 줄임말로, RDBMS(관계형 데이터베이스 시스템)에서 자료를 관리 및 처리하기 위해 설계된 언어로 1970년대 IBM에서 최초 개발 되었고 관계형모델이라는 이론에서 파생된 특징을 가지고 있는데, 현재 SQL의 표준으로 ANSI SQL이 정립되었다. 각 DBMS프로그램에서 ANSI SQL을 기반으로 개발된 SQL을 사용하며 서로 근소한 차이를 보인다. SQL 문법의 종류 SQL문법은 크게 3가지 종류로 나뉜다. - DDL(Data Definition Language, 데이터 정의 언어) DB오브젝트를 생성, 삭제, 변경하는 역할 때 사용하는 언어(CREATE, ALTER, DROP...) - DML(Data Manipulation.. JPA 개념 학습목표 ORM란 JPA란 Hibernate 동작과정 JPA를 사용해야하는 이유 ORM(Object-Relational-Mapping)란 이름 그대로 객체와 관계형 DB를 매핑한다는 뜻이다. 객체는 객체대로 설계하고, 관계형 데이터베이스는 관계형데이터베이스대로 설계해서 ORM 프레임워크가 중간에서 매핑해준다. JPA 자바 진영의 ORM 기술 표준이며, 인터페이스의 모음이다. (JPA 인터페이스를 구현한 대표적인 오픈소스가 Hibernate다.) JPA가 제공하는 API를 사용하면 객체를 DB에 저장하고 관리할 때, 개발자가 직접 SQL을 작성하지 않아도 된다. JPA가 개발자 대신 적절한 SQL을 생성해서 DB에 전달하고, 객체를 자동으로 매핑해준다. Hibernate 자바 진영의 다양한 ORM프레임워크.. 이전 1 다음