# if 조건문을 사용할 때 간단하지만 아주 중요한 하지만 놓치는 부분을 생각해 보려 한다.
if (A && B) {
}
라고 했을 떄
A 가 False이면 B는 생각을 안하기 때문에 조금더 속도가 빠르다.
따라서 조건을 적을때 조금더 중요한 것을 A부분에 넣어서 조금더 코드가 빠르게 할수 있도록 해야한다.
'[현업] 알면 좋은 것들' 카테고리의 다른 글
| [Debug 사용하기] 1 (0) | 2020.06.23 |
|---|
# if 조건문을 사용할 때 간단하지만 아주 중요한 하지만 놓치는 부분을 생각해 보려 한다.
if (A && B) {
}
라고 했을 떄
A 가 False이면 B는 생각을 안하기 때문에 조금더 속도가 빠르다.
따라서 조건을 적을때 조금더 중요한 것을 A부분에 넣어서 조금더 코드가 빠르게 할수 있도록 해야한다.
| [Debug 사용하기] 1 (0) | 2020.06.23 |
|---|
# Debug 사용할 때 여러방법이 존재
Java 파일 ==> breakPoint 사용!!
// jsp,js 파일은 개발자 도구나 debug를 사용 못함 ? ==> 확인
jsp 나 js파일 ==> debugger; 를 사용하면 디버그가 된다.
console.log를 사용하여 데이터의 값을 확인 가능하다.
console.log 할때 object인 경우 [%o] 라는 형식을 변경하여 사용하면 값이 나옴

| if 조건문 사용시 속도 및 생각 (0) | 2020.06.23 |
|---|
- 기업에서 사용하는 사용자의 정보
- 시스템 간의 통신을 위해서 전문을 만들어서 각 시스템에서 동일한 정보를 공유 할 수있도록 하기 위해서 만들어짐
- API와 인터페이스와 유사
| 아카이빙이란(Archiving)? (0) | 2020.07.30 |
|---|---|
| 인터페이스 ? (0) | 2020.06.05 |
USE [DBMS];
GO EXEC [프로시저명] [넣어야될 파라미터 값];
| 소계, 합계 구하기 (0) | 2020.04.27 |
|---|---|
| 프로시저 생성시 변수에 데이터 넣기 (0) | 2020.04.25 |
| # [MSSQL] LOCK 걸린 쿼리 확인 후 강제 KILL (0) | 2020.04.17 |
| # 저장 프로시저 (0) | 2020.04.07 |
| # 트랜잭션 (0) | 2020.04.07 |
# ROLLUP
- 소그룹간의 소계를 계산한다.
- ROLLUP은 GRPUP BY의 확장 형태로 사용하기 쉬운데, GRPOUP BY에 있는 항목들을
오른쪽에서 왼쪽순으로 그룹으로 묶어 집계를 낸다.
EX) GROUP BY A,B,C ROLLUP
총합계의 행이 나온다
# CUBE
- CUBE 함수는 GROUP BY 항목들 간 모든 경우의 수로 그룹을 생성하여 집계를 낸다.
-CUBE는 ROLLUP보다 조금 더 상세한 결과를 낸다.
-> CUBE는 ROLLUP과 그룹을 묶어주는 방식이 다르다.
| 저장프로시저 실행 (0) | 2020.04.30 |
|---|---|
| 프로시저 생성시 변수에 데이터 넣기 (0) | 2020.04.25 |
| # [MSSQL] LOCK 걸린 쿼리 확인 후 강제 KILL (0) | 2020.04.17 |
| # 저장 프로시저 (0) | 2020.04.07 |
| # 트랜잭션 (0) | 2020.04.07 |
DECLARE @nCnt INT => 변수선언
SELECT @nCnt = count(*) FROM [테이블명] WHERE IF_NO = @IN_vIF_NO AND IF_NO_SEQ = @IN_vIF_NO_SEQ
이런식으로 변수를 넣어주면 됨
| 저장프로시저 실행 (0) | 2020.04.30 |
|---|---|
| 소계, 합계 구하기 (0) | 2020.04.27 |
| # [MSSQL] LOCK 걸린 쿼리 확인 후 강제 KILL (0) | 2020.04.17 |
| # 저장 프로시저 (0) | 2020.04.07 |
| # 트랜잭션 (0) | 2020.04.07 |

트랜젝션 커밋을 안했을때
| [VB] 특정 Cell에 포커스 주기 및 이동 (0) | 2020.03.27 |
|---|
MSSQL을 사용하다가 조회결과가 나오지 않을 경우 테이블에 락이 걸려서 발생 가능성이 있음
1. SP_LOCK 실행
MODE값이 X인 것(LOCK걸린놈)을 확인 한후 SPID를 확인
2. LOCK 걸린 쿼리 조회
DBCC INPUTBUFFER(SPID번호)
3. LCOK으로 의심되는 SPID 조회
SELECT p.status ,p.program_name ,p.hostname ,p.spid ,p.blocked ,p.kpid
,p.cpu ,p.physical_io ,p.waittype ,p.waittime ,p.lastwaittype
,p.waitresource ,p.dbid ,p.uid ,p.memusage ,p.login_time ,p.last_batch
,p.ecid ,p.open_tran ,p.sid ,p.hostprocess
,p.cmd ,p.nt_domain ,p.nt_username ,p.net_address
,p.net_library ,p.loginame ,p.context_info ,p.sql_handle
,p.stmt_start ,p.stmt_end
FROM master..sysprocesses p
WHERE (
STATUS LIKE 'run%'
OR waittime > 0
OR blocked <> 0
OR open_tran <> 0
OR EXISTS (
SELECT *
FROM master..sysprocesses p1
WHERE p.spid = p1.blocked
AND p1.spid <> p1.blocked
)
)
AND spid > 50
AND spid <> @@spid
ORDER BY CASE
WHEN STATUS LIKE 'run%'
THEN 0
ELSE 1
END
,waittime DESC
,open_tran DESC
4. KILL 죽이기
KILL SPID 번호 -- 죽일번호(LOCK걸린놈)
| 소계, 합계 구하기 (0) | 2020.04.27 |
|---|---|
| 프로시저 생성시 변수에 데이터 넣기 (0) | 2020.04.25 |
| # 저장 프로시저 (0) | 2020.04.07 |
| # 트랜잭션 (0) | 2020.04.07 |
| @@ROWCOUNT (0) | 2020.03.26 |
# 저장프로시저
저장프로시저는 EXECUTE문을 사용해 호출한다.
# 저장프로시저의 장점
- 캡슐의 이점 : 저장 프로시저 로직이 변경되어도 매개 변수 형태의 변화가 없다면 사용자와 응용프로그램은 영향을 받지 않을 뿐더러, 변경된 로직을 즉시 적용받을수 있다.
- 성능의 이점 : 저장된 실행계획을 재사용함으로써 CPU를 절약하고,구문분석,이름확인,그리고 최적화에 걸리는 시간을 단축할 수 잇다.
- 네트워크 트래픽 최소화 : 서버로 전송하는 쿼리문의 문자열을 줄여 네트워크 트래픽을 줄일 수 있다. 상당한 길이의 쿼리문 대신 저장 프로시저 이름과 매개변수만 사용하기 때문이다.
- 보안계층으로 사용 : 개체에 접근할 권한을 직접 부여하지 않고 저장 프로시저 실행권한만 부여하기 때문에 개체에 대한 불필요한 접근을 제한 할수 있다.
저장 프로시저가 넘겨주는 값만 볼수 있다.
* 일반 SQL 문
구문분석 - 표준화 - 보안점검 - 최적화 -컴파일 -실행
(키워드를 분리하고 문법검사) (각 개체들이 이름을 확인하고 불필요한 구문 제거) (구문을 실행한 사용자의 권한을 확인) (가장빠른 성능을 위해 색인,조인,잠금 등을 결정하여 최적화된 실행계획을 만든다.) (실행계획을 컴파일 한 후 캐시에 등록) (컴파일 된 구문 실행)
* 저장 프로시저
구문분석 - 지연된 이름확인 -보안점검 -결과저장
(키워드를 분리하고 문법을 검사) (저장 프로시저를 만들때 해당 개체의 이름이 존쟇는지 확인하지 않는다.) (저장 프로시저를 만들 수 있는 권한이 있는지 확인한다.) (시스템 테이블에 개체의 정보를 저장)
| 프로시저 생성시 변수에 데이터 넣기 (0) | 2020.04.25 |
|---|---|
| # [MSSQL] LOCK 걸린 쿼리 확인 후 강제 KILL (0) | 2020.04.17 |
| # 트랜잭션 (0) | 2020.04.07 |
| @@ROWCOUNT (0) | 2020.03.26 |
| 테이블 복사 및 데이터 복사 (0) | 2020.03.26 |