데이터 상황에 따라 실행계획을 알맞게 다시 세워서 수행하기도 한다.
만약 데이터 양이 늘어나서 쿼리 수행 속도가 느려졌다면,
실행계획에 병렬처리가 있는지 확인하고, 없다면 merge 키워드를 사용하여 병렬처리를 하도록 지시하자.
위의 실행계획은 똑같은 쿼리에 merge 조인하라고 힌트를 주느냐 마느냐에 따라 달라지는 실행계획을 보여준다.
첫번째 실행계획대로 쿼리가 수행되면 약 2분 정도의 시간이 걸린다.(left join)
두번째 실행계획대로 쿼리가 수행되면 약 2초 밖에 안걸린다.(left merge join)
merge 키워드는 물리적으로 어떻게 조인 할 것이냐를 직접적으로 지정하는 키워드 이다.
(참고로 inner join, outer join 등은 논리적 조인 키워드 이다.)
위 실행계획에서 보듯이 merge가 들어가면 병렬(페러럴) 처리가 이루어짐을 알 수 있다.
복잡한 쿼리를 수행 할 때 병렬처리를 하지 않으면 쿼리 수행시간이 지나치게 길어 질 수 있다.
같은 쿼리인데, 갑자기 속도가 느려졌다면 병렬처리를 하고 있는지 확인해 보고,
그렇지 않다면 merge 키워드를 추가하여 강제로 병렬처리를 하도록 지시하자.
참고 : http://blog.naver.com/PostView.nhn?blogId=ssayagain&logNo=90036001354&from=search
'MSSQL' 카테고리의 다른 글
MSSQL 곱셈-집계 함수 곱셈, SUM() 곱셈함수, row 곱셈, 특정필드 값 곱셈 (2) | 2014.06.12 |
---|---|
MSSQL 차집합 구하기 (0) | 2013.11.14 |
MSSQL money 타입 소수점부 값 조회 (1) | 2013.08.30 |
--테스트 DB/TABLE 준비
use master
create database test20131114
go
use test20131114
create table A
(
id int
)
create table B
(
id int
)
insert into A values (1)
insert into A values (2)
insert into A values (3)
insert into A values (4)
insert into A values (5)
insert into B values (1)
insert into B values (2)
insert into B values (3)
/*
위와 같이 A 테이블(집합 A)에는 1,2,3,4,5가 있고,
B 테이블(집합 B)에는 1,2,3이 있다.
집합 A에서 집합 B를 뺀 차집합은 4,5가 된다.
수학 기호로는 A-B={4,5} 이다.
*/
--가장 간결한 방법
select id
from A
except
select id
from B
/*
EXCEPT 및 INTERSECT
두 쿼리의 결과를 비교하여 고유한 값을 반환합니다.
EXCEPT는 오른쪽 쿼리에 없는 고유한 값을 왼쪽 쿼리에서 반환합니다.
INTERSECT는 INTERSECT 피연산자의 왼쪽과 오른쪽에 있는 두 쿼리에 의해 반환된 고유한 값을 반환합니다.
참고 : http://msdn.microsoft.com/ko-kr/library/ms188055.aspx
*/
--NOT IN을 이용한 방법
select id
from A
where id not in (
select id
from B
)
/*
부연참고 : http://smartweb.tistory.com/4
*/
--IS NULL을 이용한 방법
select A.id
from (
select id
from A
) A
left join (
select id
from B
) B on B.id=A.id
where B.id is null
'MSSQL' 카테고리의 다른 글
MSSQL 곱셈-집계 함수 곱셈, SUM() 곱셈함수, row 곱셈, 특정필드 값 곱셈 (2) | 2014.06.12 |
---|---|
MSSQL SELECT 쿼리 LEFT JOIN 속도 개선 - left merge join (0) | 2013.11.14 |
MSSQL money 타입 소수점부 값 조회 (1) | 2013.08.30 |
원문
http://www.todayhumor.co.kr/board/view.php?kind=member&ask_time=&search_table_name=&table=computer&no=23431&page=1&keyfield=&keyword=&sb=&member_kind=total&no_tag=1
진짜 원문은 누구꺼인지 모름
정리
컴퓨터는 직류를 쓰기에 교류를 직류로 바꿔 주어야 한다.
교류를 직류로 바꾸려면 캐퍼시터(콘덴서)라는 것을 이용한다.
캐퍼시터는 일종의 충전지로서, 캐퍼시터에 전류가 흐르면 충전 되었다가, 흐르지 않으면 방전되며 전기를 흘려보낸다.
직류의 + 쪽을 이용하여 캐퍼시터에 충전을 한다.
단순한 교류+캐퍼시터 조합은 교류의 + 쪽만 이용하므로 리플의 폭이 크다.
리플의 폭이 크면 주변 전자장치에 악영향을 미친다.
그래서 교류의 – 방향도 이용하기 위해여,
몇개의 다이오드와 트랜지스터를 조합하여, – 방향의 전류를 + 로 뱡향으로 바꾼다.
교류+다이오드+트랜지스터+캐퍼시터의 조합으로 리플의 폭을 줄여준다.
하지만 이렇게 해도 교류의 흔적은 남는다.
리플의 폭을 최대한 줄여 교류의 흔적을 없앤 제품이 양질의 제품이다.
리플의 폭이 작을 수록 노이즈도 줄어들게 된다.
'컴퓨터교양 > 하드웨어 활용' 카테고리의 다른 글
알파스캔 AOC 2477 듀얼 모니터 후기 (0) | 2016.04.13 |
---|---|
무소음 노트북 Lenovo Y580 / HP Elitebook 2570p 외부모니터 최대 해상도 (0) | 2013.11.14 |
노트북 + 외부모니터 2560*1600 (0) | 2013.10.14 |
휴대폰 기기변경 (0) | 2013.10.14 |
요청에서 응답까지 다양한 실행 순서
서블릿만 사용시 | 컨테이너 | 서블릿 | 컨테이너 | |||
모델 사용시 | 컨테이너 | 서블릿 | 모델 | 서블릿 | 컨테이너 | |
JSP 사용시 | 컨테이너 | 서블릿 | JSP | 컨테이너 | ||
모델+JSP 사용시 | 컨테이너 | 서블릿 | 모델 | 서블릿 | JSP | 컨테이너 |
요청에서 응답까지 기본적인 실행 순서- JSP 사용시 / 모델 사용시
순서 | 설명 |
컨테이너(톰캣) | servlet 이라면 DD(web.xml)을 참조하여, 해당 servlet 스레드를 생성하고, HttpSevletRequest, HttpServletResponse 를 생성하여 인자로 넘기며, 해당 servlet의 service() 메소드를 호출하여, servlet을 구동시킴 (바로 컨테이너에게 Response 객체를 전달 할 수도 있으나…) |
servlet | 요청 처리를 진행(바로 JSP로 Request dispatching 할 수도 있으나…) |
모델 | servlet이 호출하는 대상이며, 보통 자료를 리턴 함 |
servlet | 여러 타 servlet을 거처 자료를 완성된 자료를 Request 객체에 담아낸 servlet JSP로 Request dispatching |
JSP | 서블릿이 자료를 담아 낸 Request 객체에서 attribute를 적출해 사용함 최종적으로 Response 객체를 완성시키고 컨테이너에게 전달 |
컨테이너 | HttpServletResponse를 HTTP Respose로 응답함 |
배포된 자바 웹 어플리케이션 폴더 구조 - JSP 미사용시
폴더 / 파일 | 설명 |
/*.html | 보통의 요청이 시작되는 곳 |
/WEB-INF/web.xml | 요청이 servlet 일 때, 어떤 servlet으로 요청을 넘겨야 하는지가 기술되어 있음 |
/classes/[model]/*.class /classes/[web]/*.class /classes/[namespaces1]/*.class /classes/[namespaces2]/*.class /classes/[namespaces3]/*.class … | servlet과 모델들이 모여 있는 곳 JSP 미사용시는 아래와 같이 response를 직접 작성함 response.setContentType("text/html"); PrintWriter out = response.getWriter(); out.println("<br />…"); |
배포된 자바 웹 어플리케이션 폴더 구조 - JSP 사용시
폴더 / 파일 | 설명 |
/*.html | 보통의 요청이 시작되는 곳 |
/WEB-INF/web.xml | 요청이 servlet 일 때, 어떤 servlet으로 요청을 넘겨야 하는지가 기술되어 있음 |
/classes/[model]/*.class /classes/[web]/*.class /classes/[namespaces1]/*.class /classes/[namespaces2]/*.class /classes/[namespaces3]/*.class … | servlet과 모델들이 모여 있는 곳 JSP 사용시는 response를 직접 작성 안하고, JSP에게 요청을 부탁함(RequestDispatcher) RequestDispatcher view = request.getRequestDispatcher("result.jsp"); 필요하다면 request 객체를 통해 자료를 넘김 request.setAttribute("styles", result); RequestDispatcher view = request.getRequestDispatcher("result.jsp"); view.forward(request, response); |
/*.jsp | HTML과 scriptlet 코드로 response를 작성한다. 필요하다면 servlet으로 부터 넘어온 request객체를 통해 자료를 얻음 List styles = (List)request.getAttribute("styles"); |
'JSP' 카테고리의 다른 글
JAVA JDK 설치 / 환경 변수 설정 (0) | 2014.04.18 |
---|---|
서블릿 요청에 대한 컨테이너의 요청처리 순서 (0) | 2013.10.10 |
웹 어플리케이션 발전 순서 - HTML > CGI > JSP & Servlet (0) | 2013.10.10 |
HTTP 기초 (0) | 2013.10.10 |
JAVA 웹 개발환경 세팅 - JSP 개발환경 세팅 - 수동컴파일(no eclipse) (0) | 2013.10.10 |
'컴퓨터교양 > 프로그램 활용' 카테고리의 다른 글
이클립스 UTF8 한글 깨짐 현상 (0) | 2013.12.20 |
---|---|
형상관리란 무엇인가? 소프트웨어형상관리(SCM)란 무엇인가 (0) | 2013.12.19 |
Windows 8 시작버튼 생성 프로그램 (0) | 2013.10.11 |
Windows Live Writer로 작성한 글 입니다. (0) | 2013.10.09 |
티스토리 블로그 에디터 (0) | 2013.10.09 |
HD4000 지원사항 DisplayPort* 1.1 2560 x 1600,
http://software.intel.com/en-us/articles/quick-reference-guide-to-intel-processor-graphics/
디스플레이포트 1.0은 2미터 케이블에서 최대 8.64기가바이트/초의 속도로 데이터를 전송할 수 있다.
60fps × 32bpp × 2560 × 1600 = 초당 7.8 기가비트
http://ko.wikipedia.org/wiki/%EB%94%94%EC%8A%A4%ED%94%8C%EB%A0%88%EC%9D%B4%ED%8F%AC%ED%8A%B8
'컴퓨터교양 > 하드웨어 활용' 카테고리의 다른 글
알파스캔 AOC 2477 듀얼 모니터 후기 (0) | 2016.04.13 |
---|---|
무소음 노트북 Lenovo Y580 / HP Elitebook 2570p 외부모니터 최대 해상도 (0) | 2013.11.14 |
파워 서플라이 리플과 노이즈 (0) | 2013.10.31 |
휴대폰 기기변경 (0) | 2013.10.14 |
tworld.co.kr
'myT'로 들어가면 하단 메뉴에 '기기변경 신청'이라고 있음
tworld에서 변경이 되면,
새 휴대폰에 자기 번호를 입력해야 함.
모토로라 번호 입력 방법
#758353266#646# 입력하면 번호입력 화면으로 넘어감
자기 번호 입력하고 OK
'컴퓨터교양 > 하드웨어 활용' 카테고리의 다른 글
알파스캔 AOC 2477 듀얼 모니터 후기 (0) | 2016.04.13 |
---|---|
무소음 노트북 Lenovo Y580 / HP Elitebook 2570p 외부모니터 최대 해상도 (0) | 2013.11.14 |
파워 서플라이 리플과 노이즈 (0) | 2013.10.31 |
노트북 + 외부모니터 2560*1600 (0) | 2013.10.14 |
'컴퓨터교양 > 프로그램 활용' 카테고리의 다른 글
이클립스 UTF8 한글 깨짐 현상 (0) | 2013.12.20 |
---|---|
형상관리란 무엇인가? 소프트웨어형상관리(SCM)란 무엇인가 (0) | 2013.12.19 |
Ghost USB 부팅 고스트 만들기 (0) | 2013.10.15 |
Windows Live Writer로 작성한 글 입니다. (0) | 2013.10.09 |
티스토리 블로그 에디터 (0) | 2013.10.09 |
요청 처리 순서
1. 웹서버가 HTTP request를 컨테이너에게 전달
2. 컨테이너가 HttpServletRequest, HttpServletResponse 객체 생성
3. DD를 참고하여 URL을 분석 후 해당 서블릿 스레드를 생성
(HttpServletRequest, HttpServletResponse 객체를 인자로 넘김)
4. 컨테이너가 서블릿 service() 메소드를 호출하면, doGet() 또는 doPost()가 호출됨
5. 서블릿의 doGet() 메소드는 동적인 페이지를 생성한 다음,
HttpServletResponse 객체에 실어 컨테이너에게 보냄
6. 컨테이너는 HttpServletResponse 객체를 HTTP response 로 전환하여 웹서버로 보냄
7. 컨테이너는 전환이 끝나면 HttpServletRequest, HttpServletResponse 객체 소멸시킴
컨테이너의 역할
통신 지원 : 웹서버와 통신하기 위해
라이프사이클 관리 : 서블릿의 생성과 소멸을 위해
멀티스레딩 지원 : 다중 요청 처리를 위해
선언적인 보안 관리 : XML 기반 보안 관리를 위해
JSP 지원 : JSP 코드를 자바 코드로 변환하기 위해
요청에 대한 서블릿 연결
오류 페이지 설정
접근 제어 목록 설정
보안 역할 설정
'JSP' 카테고리의 다른 글
JAVA JDK 설치 / 환경 변수 설정 (0) | 2014.04.18 |
---|---|
자바 웹 어플리케이션 폴더 구조 / 요청에서 응답까지 기본적인 실행 순서 (0) | 2013.10.20 |
웹 어플리케이션 발전 순서 - HTML > CGI > JSP & Servlet (0) | 2013.10.10 |
HTTP 기초 (0) | 2013.10.10 |
JAVA 웹 개발환경 세팅 - JSP 개발환경 세팅 - 수동컴파일(no eclipse) (0) | 2013.10.10 |
웹 어플리케이션 발전 순서
웹 통신 초기에는 정적인 HTML 문서만 서비스함(과학분야 / 대학교 등에서 주로 사용됨)
항상 똑같은 정적인 문서에 동적인 표현이 필요하게 되어 CGI(Common Gateway Interface)가 동적으로 작성한 HTML을 서비스함
CGI의 시스템 퍼포먼스 문제와 느린 개발 속도 때문에 ASP, PHP, JSP & Servlet 같은 스크립트 방식 엔진이 등장함
첫 직장 최고 개발 팀장왈 ‘CGI 노가다 안해봤지? PHP 부터 하는걸 축복으로 생각해.’
CGI에 관한 자주 있는 오해
이름에서 알 수 있듯이, CGI는 어디까지나 인터페이스이며, 특정 플랫폼에 의존하지 않고, 웹 서버 등으로부터 외부 프로그램을 호출하는 조합을 가리킨다.
(출처 : http://ko.wikipedia.org/wiki/%EA%B3%B5%EC%9A%A9_%EA%B2%8C%EC%9D%B4%ED%8A%B8%EC%9B%A8%EC%9D%B4_%EC%9D%B8%ED%84%B0%ED%8E%98%EC%9D%B4%EC%8A%A4)
다시 말해 각각의 개발사가 필요에 의해 자신들만의 cgi 프로그램을 만든 것이고, 이를 통칭하여 cgi라고 한다.
특정 벤더가 만든 메이커 소프트웨어가 아니란 말이다.
요청을 분석하여 Perl, C, Python 등의 언어로 작성된 CGI 프로그램에 집어 넣으면, 요청에 따라 동적인 HTML을 작성하여 뱉어 낸다. 이것을 웹서버가 응답시킴
스크립트 방식 엔진에 사용되는 언어
ASP : 주로 VBScript
PHP : PHP
JSP : java
'JSP' 카테고리의 다른 글
JAVA JDK 설치 / 환경 변수 설정 (0) | 2014.04.18 |
---|---|
자바 웹 어플리케이션 폴더 구조 / 요청에서 응답까지 기본적인 실행 순서 (0) | 2013.10.20 |
서블릿 요청에 대한 컨테이너의 요청처리 순서 (0) | 2013.10.10 |
HTTP 기초 (0) | 2013.10.10 |
JAVA 웹 개발환경 세팅 - JSP 개발환경 세팅 - 수동컴파일(no eclipse) (0) | 2013.10.10 |