반응형


출처 : http://blog.daum.net/journeyerhum/37


윈도우XP에서 공유폴더 설정과 특정암호나 사용자 별 권한 부여방법.

1. 제어판 -> 관리도구 -> 로컬보안정책을 열고
로컬정책->보안옵션->네트워크액세스(여러 개 중 두 번째) 옵션이 두개 있다
ⓐ일반 - 로컬사용자를 그대로 인증
ⓑ게스트전용 - 로컬사용자를 게스트로 인증
여기서 일반을 선택한다
2. 내컴퓨터->도구->폴더옵션->보기
"모든 사용자에게 동일한 폴더공유권한을 지정(권장)" 체크옵션을 지운다
-> 확인
3. 해당 폴더에서 오른쪽 마우스를 클릭->"공유 및 보안"->"공유"->
"이 폴더를 공유함"->"사용 권한"-> EVERYONE 계정을 제거
-> 접근 가능하게 할 계정을 추가 등록함->등록 후 확인

----------- 추가 메모 시작 ----------------------------------
 해당 폴더에서 오른쪽 마우스를 클릭->"공유 및 보안"->"보안" 탭에서도 권한 설정을 해줘야 한다. 그렇지 않으면 3번 항목에서 아무리 모든 권한을 부여한 사용자라 할지라도 파일 접근이 읽기 전용 속성으로만 이루어진다.

"내 컴퓨터" 항목상에서 마우스 우클릭 -> 시스템 도구 및의 "로컬 사용자 및 그룹"-> "그룹" 에서 새 그룹을 생성해준다. (ex. Developer Level 1, developer Level 2, … ) 그룹에 포함되는 사용자도 결정(아마도..)

해당 폴더에서 오른쪽 마우스를 클릭->"공유 및 보안"->"보안" 탭에서 해당 폴더에 접근할 수 있는 사용자 그룹을 입력하고 그 그룹의 접근 보안 권한을 설정해준다.
----------- 추가 메모 종료 ----------------------------------

4. 모두 설정 후 재부팅
(로컬보안정책은 재부팅을 하지 않으면 정책이 바로 적용돼지 않는다)
: 그 다음부터는 다른 XP에서 이PC로 네트웍 드라이브를 잡을때 
기존에는 Guest로 계정이 정해져서 나오는 것이 계정을 사용자가 넣을 수
있게 창이 바뀐다
이곳에 사용하고자 하는 계정을 넣고 Password를 넣으면 된다

반응형
반응형

10g에 추가된 Tuning Advisor


SQL ID 와 Begin SNAP 부분은 addm 을 통해 조회하여 입력하는 것이 좋음.(자동 생성 SH은 비밀글 참조...)


출처 : http://blog.daum.net/onjshop/175


★★ www.oraclejava3.co.kr 에서 더욱 유용한 정보를 확인하실 수 있습니다. ★★ 
(분당정자점은 양재, 강남에서 15분 거리에 있습니다. ^^)

Automatic SQL Tuning in Oracle Database 10g(SQL Tuning Advisor) 

이번 강좌에서는 오라클 10g의 새 특징인 자동 SQL 튜닝기능에 대해 알아 보도록 하겠습니다. 

Normal Mode에서 오라클 옵티마이저는 아주 짧은 시간에 최적의 실행 계획을 계산해 내야 합니다. 그러므로 항상 최선의 실행 계획을 만들어 낼 수는 없다 이겁니다~^^ 

Oracle 10g는 옵티마이저가 튜닝 모드에서 실행될 수 있도록 하여 추가적인 통계 정보를 모아 추후에는 튜닝된 최적의 실행 계획을 만들어 낼 수 있도록 지원 합니다. 물론 이러한 프로세스는 하나의 SQL문장에 대해 몇 분이 걸릴지도 모르므로 리소스를 많이 잡아 먹는 경향이 있습니다. 

튜닝모드에서 옵티마이저가 하는 일에 대해 정리해 볼까요? 

- 통계 분석(statistics Analysis) : 옵티마이저는 오래전에 만들어진 통계 정보나 또는 통계 정보가 없는 부분에 대해 통계 정보를 생산 하는 것을 권고 하며 SQL Profile안에 부가적인 객체에 대한 통계 정보를 저장 합니다. 

- SQL Profileing : CBO(Cost Base Optimizer)로 수행될 때 SQL문을 위해서는 부가 정보들이 필요 합니다. 이러한 SQL문의 정보들을 SQL 프로파일이라는 형태로 수집해 놓습니다. 이러한 SQL 프로파일이 필요할 때마다 SQL Tuning Advisor 에 의해 업데이트됩니다. 

- 실행 경로 분석(Access Path Analysis) : 어떤 인덱스를 통해 데이터를 접근하여 추출할지를 결정 합니다. 필요하다면 SQL Access Advisor를 호출해 인덱스에 대한 권고를 요구하기도 합니다. 

- SQL 구조 분석(SQL Structure Analysis) : SQL문이 비효율적인 실행 계획을 생성할 경우 같은 결과를 보여줄 수 있는 비슷한 SQL문을 생성해 권고하는 역할을 합니다. 

이러한 Automatic SQL Tuning 특징은 EM(Enterprise Manager)의 “Advisor Central” 을 이용해서도 사용 할 수 있으며 또한 PL/SQL의 DBMS_SQLTUNE 패키지를 이용해서도 사용 가능 합니다. 본 강좌에서는 PL/SQL에 초점을 맞추어서 진행토록 하겠습니다. 

SQL Tuning Advisor 

SQL Tuning API에 접근 하기 위해서는 ADVISOR라는 권한이 있어야 합니다. 

아래처럼 하면 됩니다. 

SQL>CONN sys/password AS SYSDBA 
SQL>GRANT ADVISOR TO scott; 
SQL>CONN scott/tiger 

SQL Tuning Advisor를 사용하기 위한 첫 번째 단계는 CREATE_TUNING_TASK를 이용하여 새로운 tuning task를 만드는 일입니다. 분석되고자 하는 SQL 문장은 AWR이나 CURSOR CACHE, SQL Tuning set 또는 매뉴얼하게 만들어져 검색 될 수 있습니다. 

SET SERVEROUTPUT ON 

-- Tuning task created for specific a statement from the AWR. 
DECLARE 
l_sql_tune_task_id VARCHAR2(100); 
BEGIN 
l_sql_tune_task_id := DBMS_SQLTUNE.create_tuning_task ( 
begin_snap => 764, 
end_snap => 938, 
sql_id => '19v5guvsgcd1v', 
scope => DBMS_SQLTUNE.scope_comprehensive, 
time_limit => 60, 
task_name => '19v5guvsgcd1v_AWR_tuning_task', 
description => 'Tuning task for statement 19v5guvsgcd1v in AWR.'); 
DBMS_OUTPUT.put_line('l_sql_tune_task_id: ' || l_sql_tune_task_id); 
END; 


-- Tuning task created for specific a statement from the cursor cache. 
DECLARE 
l_sql_tune_task_id VARCHAR2(100); 
BEGIN 
l_sql_tune_task_id := DBMS_SQLTUNE.create_tuning_task ( 
sql_id => '19v5guvsgcd1v', 
scope => DBMS_SQLTUNE.scope_comprehensive, 
time_limit => 60, 
task_name => '19v5guvsgcd1v_tuning_task', 
description => 'Tuning task for statement 19v5guvsgcd1v.'); 
DBMS_OUTPUT.put_line('l_sql_tune_task_id: ' || l_sql_tune_task_id); 
END; 


-- Tuning task created from an SQL tuning set. 
DECLARE 
l_sql_tune_task_id VARCHAR2(100); 
BEGIN 
l_sql_tune_task_id := DBMS_SQLTUNE.create_tuning_task ( 
sqlset_name => 'test_sql_tuning_set', 
scope => DBMS_SQLTUNE.scope_comprehensive, 
time_limit => 60, 
task_name => 'sqlset_tuning_task', 
description => 'Tuning task for an SQL tuning set.'); 
DBMS_OUTPUT.put_line('l_sql_tune_task_id: ' || l_sql_tune_task_id); 
END; 


-- Tuning task created for a manually specified statement. 
DECLARE 
l_sql VARCHAR2(500); 
l_sql_tune_task_id VARCHAR2(100); 
BEGIN 
l_sql := 'SELECT e.*, d.* ' || 
'FROM emp e JOIN dept d ON e.deptno = d.deptno ' || 
'WHERE NVL(empno, ''0'') = :empno'; 

l_sql_tune_task_id := DBMS_SQLTUNE.create_tuning_task ( 
sql_text => l_sql, 
bind_list => sql_binds(anydata.ConvertNumber(100)), 
user_name => 'scott', 
scope => DBMS_SQLTUNE.scope_comprehensive, 
time_limit => 60, 
task_name => 'emp_dept_tuning_task', 
description => 'Tuning task for an EMP to DEPT join query.'); 
DBMS_OUTPUT.put_line('l_sql_tune_task_id: ' || l_sql_tune_task_id); 
END; 



만약 TASK_NAME 파라미터에 값이 있다면 SQL tune task의 식별자로서 사용 되구요, 생략된다면 시스템에서 “TASK_1478” 등과 같이 만들어서 리턴 합니다. 

NVL이 SQL 문장에 사용되다면 옵티마이저로부터 반작용을 유발 하며 부가적으로 그러한 테이블에 관한 통계정보를 지우는 것도 가능 합니다. 

EXEC DBMS_STATS.delete_table_stats('SCOTT','EMP'); 

위에서 tuning task에 대해 정의를 했는데 그 다음으로 할 일은 EXECUTE_TUNING_TASK procedure를 이용하는 일 입니다. 

EXEC DBMS_SQLTUNE.execute_tuning_task(task_name => 'emp_dept_tuning_task'); 

물론 아래처럼 task를 중단하거나 재시작 하거나 취소하거나 하는 것들이 가능 합니다. 

-- Interrupt and resume a tuning task. 
EXEC DBMS_SQLTUNE.interrupt_tuning_task (task_name => 'emp_dept_tuning_task'); 
EXEC DBMS_SQLTUNE.resume_tuning_task (task_name => 'emp_dept_tuning_task'); 

-- Cancel a tuning task. 
EXEC DBMS_SQLTUNE.cancel_tuning_task (task_name => 'emp_dept_tuning_task'); 

-- Reset a tuning task allowing it to be re-executed. 
EXEC DBMS_SQLTUNE.reset_tuning_task (task_name => 'emp_dept_tuning_task'); 
다음과 같이 tuning task는 DBA_ADVISOER_LOG라는 뷰를 통해서 확인 가능 합니다. 

SQL>SELECT task_name, status FROM dba_advisor_log WHERE owner = 'SCOTT'; 

TASK_NAME STATUS 
------------------------------ ----------- 
emp_dept_tuning_task COMPLETED 

tuning task가 성공적으로 수행 되면 REPORT_TUNING_TASK라는 함수를 통해 권고를 확인 할 수 있습니다. 

SET LONG 10000; 
SET PAGESIZE 1000 
SET LINESIZE 200 
SELECT DBMS_SQLTUNE.report_tuning_task('emp_dept_tuning_task') AS recommendations FROM dual; 
SET PAGESIZE 24 

결과는 아래와 같습니다. 

RECOMMENDATIONS 
-------------------------------------------------------------------------------- 
GENERAL INFORMATION SECTION 
------------------------------------------------------------------------------- 
Tuning Task Name : emp_dept_tuning_task 
Scope : COMPREHENSIVE 
Time Limit(seconds): 60 
Completion Status : COMPLETED 
Started at : 05/06/2004 09:29:13 
Completed at : 05/06/2004 09:29:15 

------------------------------------------------------------------------------- 
SQL ID : 0wrmfv2yvswx1 
SQL Text: SELECT e.*, d.* FROM emp e JOIN dept d ON e.deptno = d.deptno 
WHERE NVL(empno, '0') = :empno 

------------------------------------------------------------------------------- 
FINDINGS SECTION (2 findings) 
------------------------------------------------------------------------------- 

1- Statistics Finding 
--------------------- 
Table "SCOTT"."EMP" and its indices were not analyzed. 

Recommendation 
-------------- 
Consider collecting optimizer statistics for this table and its indices. 
execute dbms_stats.gather_table_stats(ownname => 'SCOTT', tabname => 
'EMP', estimate_percent => DBMS_STATS.AUTO_SAMPLE_SIZE, 
method_opt => 'FOR ALL COLUMNS SIZE AUTO', cascade => TRUE) 

Rationale 
--------- 
The optimizer requires up-to-date statistics for the table and its indices 
in order to select a good execution plan. 

2- Restructure SQL finding (see plan 1 in explain plans section) 
---------------------------------------------------------------- 
The predicate NVL("E"."EMPNO",0)=:B1 used at line ID 2 of the execution plan 
contains an __EXPRESSION!__ on indexed column "EMPNO". This __EXPRESSION!__ prevents 
the optimizer from selecting indices on table "SCOTT"."EMP". 

Recommendation 
-------------- 
Rewrite the predicate into an equivalent form to take advantage of 
indices. Alternatively, create a function-based index on the __EXPRESSION!__. 

Rationale 
--------- 
The optimizer is unable to use an index if the predicate is an inequality 
condition or if there is an __EXPRESSION!__ or an implicit data type conversion 
on the indexed column. 

------------------------------------------------------------------------------- 
EXPLAIN PLANS SECTION 
------------------------------------------------------------------------------- 

1- Original 
----------- 
Plan hash value: 1863486531 

---------------------------------------------------------------------------------------- 
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time | 
---------------------------------------------------------------------------------------- 
| 0 | SELECT STATEMENT | | 1 | 107 | 4 (0)| 00:00:01 | 
| 1 | NESTED LOOPS | | 1 | 107 | 4 (0)| 00:00:01 | 
| 2 | TABLE ACCESS FULL | EMP | 1 | 87 | 3 (0)| 00:00:01 | 
| 3 | TABLE ACCESS BY INDEX ROWID| DEPT | 1 | 20 | 1 (0)| 00:00:01 | 
| 4 | INDEX UNIQUE SCAN | PK_DEPT | 1 | | 0 (0)| 00:00:01 | 
---------------------------------------------------------------------------------------- 

Note 
----- 
- dynamic sampling used for this statement 

------------------------------------------------------------------------------- 


1 row selected. 

Tuning task는 다음처럼 DROP 합니다. 

BEGIN 
DBMS_SQLTUNE.drop_tuning_task (task_name => '19v5guvsgcd1v_AWR_tuning_task'); 
DBMS_SQLTUNE.drop_tuning_task (task_name => '19v5guvsgcd1v_tuning_task'); 
DBMS_SQLTUNE.drop_tuning_task (task_name => 'sqlset_tuning_task'); 
DBMS_SQLTUNE.drop_tuning_task (task_name => 'emp_dept_tuning_task'); 
END; 

 

반응형

'Database > ORACLE' 카테고리의 다른 글

one port multi listener 설정 하기  (0) 2012.12.24
DBMS_XPLAN 정보 조회  (0) 2012.09.07
10G OCP 자격증 관련  (2) 2012.07.08
오라클 패키지 CURSOR(커서) 출력 값 조회  (0) 2012.02.23
일정 시간 별로 쿼리 정보 조회  (0) 2012.02.20
반응형

ID 선택자들의 기본 문법이다.

#ID선택자명 {속성:값;}

예)

<HTML>
<HEAD>
<style type="text/css">
#layer1 {position:absolute; left:100;top:100; z-Index:0}
#layer2 {position:absolute; left:140;top:140; z-Index:1}
</style>
</HEAD>

<BODY>
<div ID="layer1">
<table border="1" bgcolor="#FFCC00"><tr><td>THIS IS LAYER 1<br>POSITIONED AT 100,100</td></tr></table>
</div>

<div ID="layer2">
<table border="1" bgcolor="#00CCFF"><tr><td>THIS IS LAYER 2<br>POSITIONED AT 140,140</td></tr></table>
</div>
</BODY>


</HTML>






이글의 모든 내용을 www.echoecho.com 에서 참조하였을 밝힌다.
반응형

'Windows > css' 카테고리의 다른 글

선택자에 의존하는 문맥들  (0) 2010.09.06
그룹 선택자들  (0) 2010.09.06
CLASS 선택자들 (CLASS Selectors)  (0) 2010.09.06
태그 선택자들 (TAG SELECTORS)  (0) 2010.09.06
CSS 선택자란 ?  (0) 2010.09.06
반응형



서명 추가하기

론과 타니스가 파일에 서명한 방법은 다음과 같다. 론이 서명한 방법을 예로 들겠다.

1. 서명 작업 도구( )’를 선택하고‘서명 삽입’을 선택한다.

2. 문서 페이지에 서명 영역을 지정하는 방법에 대한 대화상자가 나오면, [확인]을 클릭한다.<그림 12.4>문서에 서명하는 방법을 알면, 서명이 추가되는 마키를 그리는 데 곧 익숙해질 것이므로“이 메시지 다시 표시 안함”을 선택하는 것이 좋다.


<그림 12-4> 서명 영역을 지정하는 방법을 알려주는 대화상자.

3. 페이지 위로 포인터를 움직이면, 포인터가 십자선( )으로 변한다. 서명을 추가할 영역만큼 드래그 한 다음 마우스를 놓다.<그림 12.5>

4. <디지털 ID 추가> 대화상자에서“기존 디지털 ID 파일 찾기”를 선택하고, [다음]을 클릭한다.

5. 암호 필드에 암호를 입력한다. 론은 “password”라고 입력했다.

6. 암호 옆의 화살표를 클릭하고 한 옵션을 선택한다.<그림 12.6>
선택한 디지털 서명을 위해 만든 모양 목록이 나온다. 론은 “rewards”란 이름의 모양을 선택했다. 컴퓨터에 따라 그 모양이 다를 수 있다.



<그림 12-5> 서명을 삽입할 페이지에 마키를 그린다.

7. 이유 옆의 화살표를 클릭해서 서명의 이유를 선택한다. 서명자가 저작자라는 것부터 문서를 승인하거나 용어에 동의한다는 여러 옵션이 보인다<그림 12.7>. 서명 이유에 대한 옵션은 필수 사항은 아니다.

8. [서명]을 클릭한다. <문서 서명> 대화상자가 <다른 이름으로 저장> 대화상자로 바뀐다. 론은 파일 이름에 “S”를 덧붙여서 redwards0906S.pdf로 저장했다.

9. 서명이 지정한 영역에 추가된다.<그림 12.8>
론이 선택한 디테일과 이미지가 서명 블록에 포함되었다.



<그림 12-6> 대화상자에서 직접 만든 서명의 모양을 선택할 수도 있다.



<그림 12-7> 작업 순서에 따라, 서명하는 이유를 선택할 수도 있다.



<그림 12-8> 완성된 서명 페이지.



<그림 12-9> 타니스는 서명에 프로그램 기본 설정을 사용했다.

타니스는 기본 서명 모양과 설정으로 문서에 서명하고, tsharp0906S .pdf로 파일을 저장했다.



기본 서명 정보 보기

타니스와 론은 자기들 문서에 서명한 후, 서명 패널에서 서명 정보를 확인할 수 있다. 서명 을 추가하면 자동으로 이 패널이 열린다. 패널이 닫혀 있으면, 마우스 오른쪽 버튼으로 탐색 패널을 클릭한 후에“서명”을 선택하거나‘보기 > 탐색 패널 > 서명’을 선택한다.
타니스 문서의 서명 패널은 그림 12.10과 같고 다음과 같은 내용이 포함되어 있다.

  • 머리말 옆의 마이너스(-)나 플러스(+) 기호를 클릭하면 그 안의 아이템이 열리거나 닫힌다.
  • 서명의 신뢰성 및 현재의 사용자가 서명자인지 아닌지를 확인할 수 있음
  • 문서에 서명한 시간
  • 서명한 이유
  • 서명이 포함된 필드 위치
  • 문서의 수정 번호

마지막으로 론과 타니스는 보고서를 전자 메일로 에린에게 보냈다. 에린은 나중에 사용하기 위해서 이 파일을 저장했다. 이제 이 보고서를 PDF 패키지에 포함시켜야 하지만, 먼저 표지 문서를 만들어야 한다.

<그림 12-10> 서명 패널을 보면 서명에 대한 정보를 알 수 있다.



디지털 ID

디지털 ID는 열쇠 암호화 과정을 이용한다. 보안 문서를 다른 사람들과 공유하기 위해서 그리고 다른 사람이 당신과 보안 문서를 공유하기 위해서는 디지털 ID가 필요하다.
디지털 ID는 디지털 ID를 만들 때 애크로뱃에서 자동으로 만들어지는 공개 키와 개인 키, 두 부분으로 구성되어 있다.

하나의 서명에 두 개의 키가 포함되는 것이다. 개인 키는 당신만 가지고 있고, 애크로뱃은 서명하고 문서를 인증할 때

사용한다. 공개키는 다른 사람들과 공유된다. 같은 식으로 다른 사람의 디지털 ID에도 공개 키와 개인 키가 포함되어

있다. 개인 키는 개인의 컴퓨터에 의해서 관리되고 공개 키는 당신과 공유되는 것이다.
한 동료가 문서에 포함된 당신의 공개 키를 가지고 있다면, 당신과 정보를 공유할 수 있다. 만약 그 동료의 공개 키를 당신이 가지고 있다면 동료와 정보를 공유할 수 있다. 애크로뱃에서는 같은 문서에 여러 키들을 사용할 수 있으므로 그룹과 문서와 키들을 공유할 수도 있다. 애크로뱃이 상세 정보를 관리하므로 서명의 어느 부분이 개인 키이고 공개 키인지 반드시 알아야 하는 것은 아니다.

서명 및 인증서에 대한 자세한 사항은 베이커의 웹사이트의 12장 보너스 자료를 참고한다.

 
반응형

+ Recent posts