SQL튜닝실습자료.txt

 

강사소개(황순신).pdf

 

실습환경설정.txt

 SQL 튜닝 들어가면서...

본인이 생각하는 SQL 튜닝이란 무었인가? 라는 질문을 던지시며 이번 강의도 시작하였습니다.

1. SQL 튜닝을 위한 선결 과제!

 업무에 적당한 H/W , 오라클 서버 튜닝, 운영체제 튜닝, 업무기능 분석, 데이터 모델 설계

2. SQL 튜닝이 필요한 사람

 설계자, 응용프로그램 개발자, DB관리자

3. SQL 튜닝의 3가지 접근방법

 - 부하의 감소 : 동일한 부하를 보다 효과적으로 수행

 - 부하의 조정 : 부하의 정도에 따라 업무를 조절함

 - 부하의 병렬수행 : 병렬로 수행하여 응답시간을 크게 단축

4. SQL 처리 구조

 

'강의노트' 카테고리의 다른 글

[DB] SQL 튜닝 강의 4일차  (0) 2016.01.28
[DB] SQL 튜닝 강의 3일차  (0) 2016.01.27
[DB] SQL 튜닝 강의 2일차  (0) 2016.01.26
[DB] 관계형 DB 강의 5일차 내용  (0) 2016.01.15
[DB] 관계형 DB 강의 4일차 내용  (0) 2016.01.14


프로그램을 수행하자 왠지 모르게 Error가 발생을 하였다.


해당 문제는 정말로 어처구니 없게도 Qt진행해야하는 프로그램 버전의 Tex3D V3.5를 설치하지 않았기 때문에 발생하였다.



드디어 대망!!!의 강의 마지막날..... 80프로 출석이면 이수처리 되어서라고는 하지만 수강인원이 오늘은 3명이다.... 뭔가 황당한....

어제에 이어 Oracle문서 계속 강의!

http://docs.oracle.com/cd/E11882_01/appdev.112/e10766/tdddg_objects.htm#TDDDG35000


1.

Creating and Managing Synonyms


Synonyms(동의어) : 짧게 줄여서 사용하는 느낌? 특히 다른 사용자의 DB 정보를 사용할 경우...



2. 

"PL/SQL을 사용하지 못하면 DB를 100%활용하는 것은 아니다. " 라는 말씀을 하시는 강사님.


About Packages


프로시져나 function을 포함하고 있는 것이 package

pl/sql관련 책을 하나 소개해주셨습니다.


한국에는 3판까지 번역본으로 나왔지만 더이상 구할 수가 없는 절판된 책.. 도서관에 가서 보라고 하시는 강사님... 음....


오늘은 이런저런 이야기를 많이 해 주시며 또 DB를 공부하기 좋은 사이트라며 하나를 소개 해 주셨습니다. 이름하야 Oracle-base (https://oracle-base.com/)

이런 사이트 이용하시면 상당히 괜찮다는 말씀을 하시며 ...

 

cloud control.?

http://docs.oracle.com/cd/E11882_01/server.112/e10897/em_manage.htm#ADMQS031

Introduction to Oracle Enterprise Manager Database Control


$  emctl start dbconsole
https://192.168.0.200:1158/em


위의 화면이 연결이 정상적으로 되면 아래의 화면과 같이 바뀌면서 DB정보를 확인할 수 있습니다.


뭔가 많이 정보들이 보이긴 하는데.... 아직 잘은 모르겠네요.. 처음 위의 주소로 입력했을 때 저는 한번에 위의 창이 뜨지 않아서 DB를 종료하고 다시 시작했었습니다.


강사님께서 위의 작업을 수행해주셨습니다. 특별한 이유없이 뭔가 문제가 있었던 것 같다고만 말씀을 해 주시네요...


위와 같은 Graphical tool도 성능이 뛰어나 좋지만 두가지 방법 모두 사용할 수 있는것이 가장 좋다!! 라는 말씀도 하시고,

 

Database 2 Day DBA

5 Managing the Oracle Instance

음...

 

Parameter를 확인하는 명령

...

 

 

데이터가 실제로 어디에 저장이 되는가??

 

 

 

경로에 탐색기에 들어가서 보면... 

 

 

HR사용자의 Table Space를 조회하는 실습화면입니다.

위의 화면을 아까 URL주소를 활용 해 접속한 Graphical tool을 활용하여 보면,

 

 

 

 

 

양쪽 같은것을 확인!

 

 새로 사용자를 만들고 접속을 하는 실습을 진행해보겠습니다.

위의 화면을 보면 user1이라는 계정을 생성하였음에도 불구하고 접속이 되지 않는것을 확인할 수 있습니다. 그 이유는 해당 계정(user1)은 접속권한이 없기 때문입니다.

그럼 권한을 부여한 후 접속을 해 보도록 하겠습니다.

권한 부여 후에는 USER1에 접속을 할 수 있는것을 위의 실습화면을 통해 확인할 수 있습니다.

DB관리자가 접속이 가능한 권한을 줘야 새로 생성한 user1이 DB에 접속을 할 수 있습니다.

접속을 할 수 있어도 Table생성을 할 수 없습니다. 각종 작업을 할 수 있는 권한 또한 부여를 해 주어야 해당 작업들을 수행할 수 있습니다.

 

tablespace를 만들어보도록 하겠습니다.

 

몇초정도 기다리면 Tablespace가 생성된 것을 확인할 수 있습니다.

 

=================== 마지막 강의 마지막 시간  2016-01-15 21:00 ~ 21:50 ===============

쉬는시간에 잠시 생각해보니 너무 일관성 없이 강의 흐름에 따라서 블로그에 옮겨 적고 있었습니다. 뭐 다른분들께서 얼마나 보실지는 모르지만 그냥 개인적인 강의노트라고 생각해주시면 감사드리겠습니다.(허허허 아무도 안볼지도 모르지만요...)

9 Performing Backup and Recovery

기계적인 결함, 사람의 실수 등등 각종 사고에 의해 DB에 손상이 가해질 수 있다. 복구를 할 때 다양한 DB 복구 준비 RMAN(utiliy), redo관련 정보등을 통해서 복구를 할 수 있습니다. RMAN은 다양한 기능을 제공해주는 Utility입니다.

예전에 비해 복구 또한 많이 편해지고 보완이 되었지만 예전보다 Data의 양이 많이진 것 또한 고려를 해야합니다. block backup방식등을 사용하기도 합니다.

DB를 backup하려면 아카이브 모드로 전환을 해야 합니다. 전환을 하고 backup을 해야 완벽하게 복구할 수 있습니다.

See Also:

성능 튜닝은 2가지가 있습니다.

SQL 튜닝과 server 튜닝(인스턴스 튜닝)입니다.

 

SQL튜닝은 SQL이 빨리 수행될 수 있도록 하는것이 목적입니다. 개발자와 DBA모두에게 해당사항이 있습니다.SQL문장이 잘 수행될 수 있도록 고려하는 사항들이 있습니다. 또 실행기기라는 것이 있는데 원인 분석을 할 수 있도록 해줍니다. 또한 문장을 효율적으로 사용할 수 있도록 개선을 할 수도 있습니다.

server튜닝은 DBA에게 연관이 더 큰 튜닝으로, 사용을 분석하면서 특정 DB의 성능을 저하시키는 SQL문을 추출할 수도 있으며 이러한 것은 위에서 언급한 SQL튜닝을 할 수 있습니다.

 

DB관련내용 소개 및 맺음말.

HA(고가용성??)  -> 한쪽 서버가 죽으면 다른쪽에서 구현, RAC - 병렬서버

동기화 -> 여러가지 의미가 있지만 system이 크고 여려 system에서 data가 유지되어야 할 때 들어온 하나의 data를 어떻게 일괄적으로 복제 시킬것인가에 관련된 문제로 다양한 기업의 솔루션들이 있습니다.

최근에 Bigdata라는 trand는 별로 새로운 것은 아니지만 분석도구 R도 예전부터 사용을 했고 새로울 것이 없지만 요즘 뜬 것같은 느낌이 든다는 말씀을 하시면서 bigdata에서 중요하다고 생각하는 것이 무엇인지에 대한 질문을 던지시는데....??

Data정제 , bigdata의 결과는 최종적으로 쓸모가 있어야 합니다. 유용하고 와닿는 data로 산출이 되었는가? 그리고 그러한 결과들을 추출하는 알고리즘이 훌륭한가(성능적)?에 대한 고민을 해 볼 필요가 잇습니다. 강사님께서는 bigdata를 분석해서 매주 2등이 당첨되기를 원하시는데...... 과연...? 강사님께서는 평생 돈걱정 없이 지내실 수 있을지...?

그동안 흔한 data들은 다양한 분야의 전문가들의 자료분석으로도 충분 하였습니다. 하지만 더 복잡해지고 많은data들 속에서 과연 어떻게...?

bigdata를 처리하기 위해서는 H/W의 성능 또한 중요합니다. bigdata에 뛰어든 회사들은 대부분 H/W적인 사업들을 하는 기업인거 같은데 그 판에 놀아나는(?)것이 아닌가라는 회의적인 의견또한 강사님께서는 갖고 계셨습니다. 지금 당장 bigdata를 활용 할 필요가 없는데도 bigdata에만 열광하는 것은 아닌가 싶어하셨고, 조금 더 기술 발전과 의식이 성장하면 더욱 더 나은 Bigdata가 될 것이라고 예측하셨습니다.

관계형 DB와 Bigdata의 교차점이 생길까? 라는 질문을 던지시면서 ... 수요가 공급을 만드는가 공급이 수요를 만드는가 하는 고민까지 해 보게하셨습니다. IT산업에서 살아남기 위해서는 위의 고민들을 해 볼 필요가 있다고 생각하셨고 저도 공감할 수 있었습니다.

 

'강의노트' 카테고리의 다른 글

[DB] SQL 튜닝 강의 4일차  (0) 2016.01.28
[DB] SQL 튜닝 강의 3일차  (0) 2016.01.27
[DB] SQL 튜닝 강의 2일차  (0) 2016.01.26
[DB] SQL 튜닝 강의 1일차  (0) 2016.01.25
[DB] 관계형 DB 강의 4일차 내용  (0) 2016.01.14

교육 4일차 DB관련 SQL문법을 복습하는 느낌으로 수강을 하고 있지만 생각보다 쉽게 다양한 조건을 함수로 사용하여 실습을 진행하고 있습니다.

아래는 CASE문을 사용하는 예제로 기억을 못하는 건지 배운적이 없는지 아쉽게도 CASE문을 사용해 보았던 기억이 없어서 신기하게 사용을 해 보았습니다.

 

SELECT COUNTRY_ID ID,
       CASE COUNTRY_ID
         WHEN 'AU' THEN 'Australia'
         WHEN 'BR' THEN 'Brazil'
         WHEN 'CA' THEN 'Canada'
         WHEN 'CH' THEN 'Switzerland'
         WHEN 'CN' THEN 'China'
         WHEN 'DE' THEN 'Germany'
         WHEN 'IN' THEN 'India'
         WHEN 'IT' THEN 'Italy'
         WHEN 'JP' THEN 'Japan'
         WHEN 'MX' THEN 'Mexico'
         WHEN 'NL' THEN 'Netherlands'
         WHEN 'SG' THEN 'Singapore'
         WHEN 'UK' THEN 'United Kingdom'
         WHEN 'US' THEN 'United States'
       ELSE 'Unknown'
       END COUNTRY, count(*)
FROM LOCATIONS
group by country_id
ORDER BY COUNTRY_ID;

 

 

Oracle에서 제공하는 정말정말 좋은 메뉴얼의 주소 : http://docs.oracle.com/cd/E11882_01/appdev.112/e10766/tdddg_connecting.htm#TDDDG146

해당 메뉴얼은 Oracle 홈페이지에 들어가면 문서 검색에서 볼 수 있습니다.

 

Database Transaction에 관한 내용

 

commit하기 전과 후의 결과를 우선 서로다른 두 세션에서 확인을 해 보았습니다.

 

commit 전에는 왼편의 세션에서 작업(Update)을 한 내용이 오른편 세션에서는 반영이 되지 않는 것을 확인 할 수 있습니다.

그 이유는 Database에서 transaction이 수행되는 동안 모든 데이터의 일관성을 유지하기 위하여 DB에는 적용되지 않고 Preview의 형식으로 보여주기만 한다고 강의 자료에 적혀있습니다!!

 

commit을 한 후에는 위의 화면에서 보는 것 같이 오른편의 세션에서도 왼편에서 update한 결과를 조회할 수 있습니다.

21:00~21:50 마지막 시간 강의

Oracle :http://docs.oracle.com/cd/E11882_01/appdev.112/e10766/tdddg_dml.htm#TDDDG99941

About DML Statements and Transactions

Setting Savepoints in Transactions

save points를 알기 위해 rollback부터 한번 해 보았습니다.

 

4번째 항목이 변경되었다가 다시 돌아간 것을 실습해 본 화면입니다.

Oracle 10.g버전 이후에는 Drop Table시 바로 삭제되지 않고 휴지통으로 table이 이동되는 기능이 있다고 합니다.

 

빨간 두 상자 사이에는 삽질을 좀 했습니다. Table 정보를 보고 싶었는데 명령어가 기억이 나지를 않네요... 위의 화면은 job_history라는 Table을 Drop하고 Recyclebin에 들어간 것을 확인한 실습화면입니다.

(Table확인 SQL -> select  * from tab;)

휴지통에 잘 있는것을 확인을 했으니 DB Table을 복구 해 보도록 하겠습니다.

 

Table을 삭제하면 이름까지 이상한 값으로 대체되는 것을 확인할 수 있는데 휴지통이나 테이블 조회시 확인할 수 있으며 복구하면 정상적으로 Drop이전의 이름이 잘 보이는 것을 위의 실습화면에서 확인할 수 있습니다.

 

내일 강의는 DB backup, tunning 등 다양한 것들을 강의 해 주신다고 생각을 하니 내일 강의가 기대가 됩니다.

다다음주에 튜닝 관련된 강의가 있었는데 수강인원이 가득 찬건지 신청을 못한건지 몹시 아쉬웠는데 내일 얕게라도 들을 수 있기를 바랍니다~~!!!!

'강의노트' 카테고리의 다른 글

[DB] SQL 튜닝 강의 4일차  (0) 2016.01.28
[DB] SQL 튜닝 강의 3일차  (0) 2016.01.27
[DB] SQL 튜닝 강의 2일차  (0) 2016.01.26
[DB] SQL 튜닝 강의 1일차  (0) 2016.01.25
[DB] 관계형 DB 강의 5일차 내용  (0) 2016.01.15

+ Recent posts