블로그 이미지
LifeisSimple

calendar

1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31

Notice

2017. 3. 20. 11:39 Brain Trainning/DataBase

출처 : https://blogs.msdn.microsoft.com/psssql/2016/10/04/default-auto-statistics-update-threshold-change-for-sql-server-2016/

Default auto statistics update threshold change for SQL Server 2016



Lately, we had a customer who contacted us for a performance issue where their server performed much worse in SQL Server 2016 following upgrade.  To show us as an example, he even captured a video.  In the video, he showed that the session that was compiling the query had multiple threads waiting on LATCH_EX of ACCESS_METHODS_DATASET_PARENT.  This type of latch is used to synchronize dataset access among parallel threads.  In general, it deals with large amount of data.   Below is a screenshot from the video. Note that I didn’t include complete columns because I don’t want to reveal customer’s database and user names.   This is very puzzling because we should not see parallel threads during true phases of compiling.

 

image

 

 

After staring at it for a moment, we started to realize that this must have something to do with auto update statistics.  Fortunately, we have a copy of pssdiag captured that include trace data.  To prove that auto update statistics could have caused the issue, we needed to find some evidence of long running auto update stats event.  After importing the data, we were able to find some auto update stats took more than 2 minutes.  These stats update occurred to the queries customer pointed out.  Below is an example of auto update in profiler trace extracted from customer’s data collection.

 

 

image

 

 

Root cause & SQL Server 2016 change

This turned out to be the default auto stats threshold change in SQL 2016.

KB Controlling Autostat (AUTO_UPDATE_STATISTICS) behavior in SQL Server documents two thresholds.  I will call them old threshold and new threshold.

Old threshold: it takes 20% of row changes before auto update stats kicks (there are some tweaks for small tables, for large tables, 20% change is needed).  For a table with 100 million rows, it requires 20 million row change for auto stats to kick in. For vast majority of large tables, auto stats basically doesn’t do much.

New threshold: Starting SQL 2008 R2 SP1, we introduced a trace flag 2371 to control auto update statistics better (new threshold).  Under trace flag 2371, percentage of changes requires is dramatically reduced with large tables.  In other words, trace flag 2371 can cause more frequent update.  This new threshold is off by default and is enabled by the trace flag.  But in SQL 2016, this new threshold is enabled by default for a database with compatibility level 130.

In short:

SQL Server 2014 or below: default is the old threshold.  You can use trace flag 2371 to activate new threshold

SQL Server 2016:  Default is new threshold if database compatibility level is 130.  If database compatibility  is below 130, old threshold is used (unless you use trace flag 2371)

Customer very frequently ‘merge’ data into some big tables. some of them had 300 million rows.  The process triggered much more frequent stats update now because of the threshold change for the large tables.  

 

Solution

The solution is to enable asynchronous statistics update.  After customer implemented this approach, their server performance went back to old level.

 

image

 

Demo of auto stats threshold change


–setup a table and insert 100 million rows
drop database testautostats
go
create database testautostats
go
use testautostats
go
create table t (c1 int)
go
set nocount on
declare @i int
set @i = 0
begin tran
while @i < 100000000
begin
declare @rand int = rand() * 1000000000
    if (@i % 100000 = 0)
    begin
        while @@trancount > 0     commit tran
        begin tran
    end
    insert into t values (@rand)
    set @i  = @i + 1
end
commit tran

go
create index ix on t (c1)
go

 

 

–run this query and query stats property 
–note the last_updated column
select count (*) from t join sys.objects o on t.c1=o.object_id
go
select * from sys.stats st cross apply sys.dm_db_stats_properties (object_id, stats_id) 
where st.object_id = object_id (‘t’)

image

 

–delete 1 million row
–run the same query and query stats property
–note that last_updated column changed
delete top (1000000) from t
go
select count (*) from t join sys.objects o on t.c1=o.object_id

go
select * from sys.stats st cross apply sys.dm_db_stats_properties (object_id, stats_id) 
where st.object_id = object_id (‘t’)

 

image

 

–now switch DB compt level to 120
–delete 1 million row
–note that stats wasn’t updated (last_updated column stays the same)
alter database testautostats SET COMPATIBILITY_LEVEL=120
go
delete top (1000000) from t
go
select * from sys.stats st cross apply sys.dm_db_stats_properties (object_id, stats_id) 
where st.object_id = object_id (‘t’)

 

image


추가 : http://www.sqlservergeeks.com/sql-server-trace-flag-2371-to-control-auto-update-statistics-threshold-and-behavior-in-sql-server/


posted by LifeisSimple
2016. 11. 4. 11:22 Brain Trainning/Cloud
AWS (AWSome Day 2016)

AWS (AWSome Day 2016)

Amazon Web Service

  • DB 서비스 : MySQL, Oracle, SQL Server, PostgreSQL, Amazon Aurora, MariaDB, Multi-AZ Synchronous replication
  • 도입 업체 : 삼성, 미래에셋, 주요 게임사 등등

Amazon RDS (Relational Database Service)

  • Amazon RDS는 Amazon Aurora, Oracle, Microsoft SQL Server, PostgreSQL, MySQL 및 MariaDB 중에서 선택할 수 있도록 6개의 익숙한 데이터베이스 엔진을 제공합니다.
  • Read replicas are available in Amazon RDS for MySQL, PostgreSQL, and Amazon Aurora

1교시 : AWS 소개 및 역사

  • 아마존이 잘 만들어서 열심히 서비스 하고 있다.
  • Management Console 제공하니까 잘 써라.

2교시 : AWS 스토리지 및 콘텐츠 전송

1. Simple Storage Service (S3)
  • http://johnsmith.s3.amazonaws.com/photos/puppy.jpg
  • 버킷에 저장할 수 있는 객체 수에는 제한이 없음. 객체 크기 최대 5TB.
  • REST 및 SOAP 인터페이스 제공
2. Amazon Glacier
  • 매우 저렴한 데이터 보관을 위한 Storage 서비스
3. Amazon Elastic Block Store (EBS)
  • Block Level Storage (볼륨 서비스) 최대 16TB까지 생성
  • EC2에 직접 연결하여 볼륨으로 사용.
  • 필요한 경우 스냅샷을 Amazon S3에 저장 해줌.
  • 수명주기 : 생성 -> EC2에 붙임 -> (백업)S3에 스냅샷 저장 -> 분리 -> 삭제
  • GB당 3 IOPS 제공. (용량이 증가하면 IOPS도 증가)
  • 프로비전된 IOPS (PIOPS) : DB등에서 고성능의 IOPS를 요구할때 선택
4. AWS Storage Gateway
  • 아마존에서 다운 받은 하나의 VM(소프트웨어 패키지) 이미지를 iSCSI 연결을 통해 로컬 볼륨처럼 사용할 수 있고 여기에 저장되는 데이터는 아마존의 S3로 자동 저장되는 구조. 서버용 Dropbox 드라이브? (Bandwidth 에 영향을 좀 받을 수 있는)
5. AWS Import/Export
  • Amazon S3 또는 Amazon EBS에서 대량 데이터 송수신 속도를 가속화.
  • 택배(DHL, Fedex 등)로 디스크를 보내면 아마존에서 서버에 붙여서 대량의 데이터를 빠르게 전송할 수 있도록 하는 서비스 - 반대도 가능
  • Export 는 S3에서만 가능
6. Amazon CloudFront (CDN 서비스)
  • 최종 사용자에게 쉽고 비용 효율적으로 콘텐츠를 배포할 수 있는 방법
  • 엣지 로케이션의 글로벌 네트워크를 통해 동적, 정적, 스트리밍 및 대화형 콘텐츠를 포함하는 전체 웹 사이트 전송
7. Amazon Elastic File System (NAS 서비스 - Beta임)
  • 공유 Storage 서비스를 위해 S3 API 를 활용해야 하는 불편함을 EFS 를 통해 NAS 처럼 액세스

3교시 : AWS 컴퓨팅 제품

1. Amazon Elastic Compute Cloud (EC2)
  • 컴퓨팅 요구 사항의 변화에 따라 컴퓨팅 파워를 조정
  • Linux(배포판 선택 가능) 와 Windows 를 선택
  • 사용방법 : AWS 리전(AZ) 선택 -> AMI(AWS Marketplace 에서 선택 가능)에서 EC2 인스턴스 선택 -> CPU, Memory, 네트워크 를 고려하여 인스턴스 유형 선택 -> IP주소, 보안 그룹 등 선택
  • 백업을 위한 스냅샷 (API를 통해 S3의 어느 위치에 저장되었는지 확인가능)
  • AWS 를 가입하면 기본적으로 무료로 사용할 수 있는 프리터어 제공
2. Auto Scaling
  • Amazon EC2 용량을 자동으로 조정 (Scale Out 과 Scale In 자동)
  • 사용자가 지정한 조건(정책)에 의해 자원 사용량에 따라 Instance를 늘림.
  • ELB (Elastic Load Balancing) + CloudWatch (리소스 사용률 모니터링을 통해 사이즈 조절)를 통해서 Auto Scaling 을 제공
3. Amazon Virtual Private Cloud (VPC)
  • 고객이 정의한 가상 네트워크에서 AWS리소스를 시작할 수 있도록 AWS 클라우드상에 프라이빗하고 격리된 공간을 프로비저닝
  • 가상 네트워크 환경을 완벽하게 제어함.
  • Amazon Elastic IP : 고정 IP 서비스
  • Amazon VPC를 암호화된 VPN 연결을 통해 자체 IT 인프라에 연계가능.
4. AWS Direct Connect (전용선 서비스)
  • 고객의 온프레미스 환경(자체 서버 운영 환경)과 AWS간의 전용 네트워크 연결 구축 (물리적인 구축)
  • 1G, 10G만 가능하지만 파트너를 통해 조절 가능
5. Amazon Route 53 (DNS 서비스)
  • 최종 사용자를 인터넷 애플리케이션으로 라우팅 (도메인 이름 등록 제공)
  • 특정 지역에서 들어온 트래픽을 특정 엔드포인트로 전달해주는 기능도 제공
6. Elastic Load Balancing
  • 여러 인스턴스에 걸쳐 트래픽 분산
  • Amazon EC2 인스턴스에 대한 HTTP, HTTPS 및 TCP 트래픽의 라우팅과 밸런싱 지원
  • 제약 조건 : L4 서비스만 할 수 있음. (Port 기반), L7 역할은 하지 않음. EC2 에 대해서만 가능.

4교시 : AWS 관리형 서비스 및 데이터베이스

1. Amazon Relational Database Service (RDS)
  • MySQL, PostgreSQL, Oracle, SQL Sever, Amazon Aurora 지원
  • 이중에서 Replication 은 MySQL, PostgreSQL, Aurora 가 제공
  • 자동으로 데이터베이스 소프트웨어 패치 및 데이터베이스 백업 (Standby 부터 패치 진행함)
  • 한번의 API 호출을 통해 관계형 데이터베이스 인스턴스와 관련된 컴퓨팅 리소스 또는 스토리지 용량을 확장)
  • Amazon RDS의 기본 기능은 VPC 에서 실행되는지와 관계없이 동일. 백업, 소프트웨어 패치 자동 장애 탐지 및 복구를 관리 (Version 패치는 어떻게?)
2. Amazon DynamoDB (NoSQL)
  • 용량의 제한이 없으며, SSD를 사용해 빠르고 예측 가능한 성능을 제공
  • 테이블 별로 필요한 요청 용량을 쉽게 프로비저닝하고 변경 가능. (테이블을 생성하고 용량을 지정)
  • Sharding 은 어떻게? (특정 요구 성능 및 크기에 따라 자동 파티셔닝하여 Sharding 을 함)
3. Amazon ElastiCache (인메모리 서비스)
  • 필요한 용량의 EC2를 선택 -> Cache 엔진 선택 (Memcached, Redis) -> (A-S 구조로 구축 - 알아서)
  • Memcached 호환 및 Redis 호환 온디맨드형 캐시 클러스터
  • 용도 : DB티어 앞에서 캐시(읽기가 많으며 변화가 거의 없는 데이터), 타 AWS Service 와 함께 사용.
  • 읽기 중심의 여러 애플리케이션 워크로드에서 지연 시간을 단축하고 처리량을 높여줌.
4. Amazon Redshift (DW 전용 서비스)
  • 데이터 웨어하우스 클러스터를 설정하고, 운영하며, 확장하는 데 필요한 모든 작업을 관리하는 페타바이트 규모의 서비스
  • 클러스터를 확장해 성능을 높일 수 있는 간단한 방법
  • PostgreSQL 엔진을 활용하여 만든 DW 서비스

5교시 : AWS 배포 및 관리

1. AWS Identity and Access Management (IAM)
  • AWS 사용자 및 그룹을 생성 및 관리
  • 사내 디렉터리와 AWS 서비스 간 자격 증명 연동을 가능하게 함. (LDAP에서 사요한는 그룹과 사용자를 그대로 인증없이 AWS를 사용할 수 있도록 지원)
  • AWS의 리소스에 대한 권한관리도 모두 가능
2. Amazon CloudWatch
  • 리소스 사용률, 운영 성능 및 전체 수요 패턴에 대한 모니터링 (가상화 된 서비스에 대한 모니터링)
  • AWS Management Console, API, SDK 또는 CLI를 통해 엑세스 가능
  • 필요한 지표(아파치의 세션 정보, 특정 프로세스의 메모리, Access Log, Error Log 등)를 CloudWatch로 인터페이스하여 모니터링하고 이벤트 발생 가능.
3. AWS Elastic Beanstalk
  • Web Application 의 배포 및 규모 조정에 특화된 서비스
  • 서비스 플랫폼 선택(Java, Python, Docker, Ruby 등) -> 단일 or Auto Scaling 선택 -> 세부옵션 선택 -> 완료. -> Source Upload
  • Docker 와 유사한 플랫폼?
4. AWS CloudFormation
  • 템플릿 및 연관된 리소스 모음을 배포 및 업데이트하기 위한 매우 유연한 서비스. 리소스 모음을 ‘스택’ 이라고 하고 AWS Management Console, AWS CloudFormation 명령줄 도구 또는 API 사용
  • Elastic Beanstalk 와는 다르게 세부 설정을 해야 하는 서비스 (JSON 형식의 텍스트 파일을 이용)
  • AWS 서비스 대부분을 사용자가 Setting 파일을 통해 생성 배포 가능.
  • CloudFormer를 통해 기존 서비스에서 Formation용 JSON을 뽑아낼 수 있음.
5. AWS OpsWorks
  • Beanstalk 와 CloudFormation 의 중간즈음 되는 서비스. Chef의 관리형 서비스와 유사한. Ruby를 알아야 함.
  • Chef 레시피 및 Bash 스크립트를 를 그대로 활용해 여러 EC2들의 설정을 변경할 수 있음.
  • Python, Java 등으로 만든 서비스 구성 전체를 스택 이라 하고, 이를 다시 DB, WAS 등의 관련 리소스로 계층화 하고, 마지막으로 인스턴스 위에 앱을 서비스 할 수 있도록 함. (스택이란 함께 관리하고자 하는 컴퓨터 인프라와 애플리케이션을 나타냄)

기타

Amazon 소수 오프라인 교육 참가 : 확인 필요 (학습링크 : https://aws.qwiklab.com)

posted by LifeisSimple
2016. 11. 4. 11:19 BookStory
완벽의 추구

완벽의 추구

  • 완벽주의자의 세 가지 특징
    ㄱ) 실패에 대한 거부 : 실패를 하지 않으려 한다. 따라서, 실패할 것 같은 모험을 멈춰버린다.
    ㄴ) 고통스러운 감정에 대한 거부 : 행복한 삶에 집착해 고통스러운 감정을 거부한다.
    ㄷ) 성공에 대한 거부 : 자신의 업적을 하찮게 여기고 사진의 성공에 자부심을 느끼지 못한다.

1. 불행한 완벽주의자 행복한 최적주의자

1) 실패가 없으면 성공도 없다.

  • 완벽주의자 / 최적주의자
    여행을 직선 도로로 생각한다. / 여행을 구불구불 돌아가는 길로 생각한다.
    실패를 두려워한다. / 실패를 피드백으로 생각한다.
    목적지에 초점을 맞춘다. / 여행과 목적지에 초점을 맞춘다.
    도 아니면 모라고 생각한다. / 섬세하고 복잡한 사고를 한다.
    방어적이다. / 마음이 열려있다.
    결함을 찾는다. / 가능성을 찾는다.
    가혹하다. / 관대하다.
    엄격하고 경직되어 있다. / 융통성이 있고 역동적이다.

2) 약해질 수 있는 힘

  • 완벽주의자는 자신의 본성을 무시하고 현실에서 느끼는 고통스러운 감정을 받아들이기를 거부하므로 무거운 짐을 지게 된다. 반면, 최적주의자는 본성을 인정하고 다영한 감정을 현실의 일부로 받아들이므로 삶을 즐길 수 있다.
  • 건강한 정서 생활을 하기 위해서는 가장 먼저 감정을 받아들여야 한다. 부정적인 감정이 흐르는 통로를 차단하면 결국 긍정적인 감정의 흐름까지 제한되기 때문이다.

3) 완벽한 성공은 없다

  • 너무 쉽지도, 너무 어렵지도 않은 목료를 세우라
    만일 목표를 비현실적으로 높게 정하고 우리의 한계를 인정하지 않는다면 불행해진다. 반대로, 목표를 비현실 적으로 낮게 정하고 우리가 갖고 있는 잠재력을 인정하지 않는다면 성공할 수 없을 뿐 아니라 행복감도 낮아진다.
  • 성공을 받아들이는 연습을 해야 한다. 자기 자신과 자신이 이룬 성취, 그리고 학습과 성장의 기회로 여기는 실패까지 모든 것의 가치를 인정한다. 그 결과 자신이 갖고 있는 것을 즐기고 또한 더 많은 성공과 긍정적인 경험을 하게 된다.

4) 백조를 동경하는 미운 오리가 되지 말라

  • 사람들은 사물 (트럭, 독극물 등) 에 대해서는 있는 그대로 받아들이지만 자신의 감정에 대해서는 있는 그대로 받아들이지 않는다.
  • 완벽주의를 극복하고 최적주의로 가기 위해서는 길패, 감정, 성공, 무엇이든 현실을 있는 그대로 받아들여야 한다. 실패를 받아들이지 않으면 도전과 노력을 피하게 되고 그 결과 학습과 발전의 기회를 놓치게 된다.

2. 완벽하지 않아도 괜찮다.

1) 부모와 아이 모두 행복한 자녀교육법

  • 고정형 사고방식(완벽주의)은 실패에 대한 극심한 두려움을 느끼고 실패하면 큰일이 나는 것처럼 생각한다면, 성장형 사고방식(최적주의)은 실패를 성장과 발전의 기회롤 인식한다.
  • 부모는 자녀의 재능을 칭찬해주면 영구적인 자신감을 줄 수 있다고 생각한다. 하지만 역효과가 날 수 있다. 뭔가 어렵거나 잘못되면 곧바로 자신을 의심하게 하기 때문이다. 부모가 자녀에게 줄 수 있는 최고의 선물은 도전을 사랑하고 실수를 통해 자극을 받고 노력하는 것을 즐기고 계속 배울 수 있도록 도와주는 것이다.

2) 건강한 완벽주의자는 놀면서 일도 잘한다

  • 위대한 경영자들이 그 자리에 있을 수 있는 이유는 자신과 다른 사람들에게 실패와 실수에서 배우는 기회를 허락했기 때문이다.
  • 일관성과 인내는 성공에 필요한 요소이다. 하지만 감정이 없는 기계처럼 보이려고 감정과 욕구를 무시하면 결국 실패하고 불행해진다.
  • 휴식은 가장 좋은 투자이다.

3) 완벽한 사람은 존재하지 않는다.

  • 완벽주의자는 상대방에게 결함이 있다는 사실을 알았을 때, 극단적이고 비현실적인 과점(나의 연인은 완벽하다)에서 부터 또 다른 극단적이고 비현실적인 관점(나의 연인은 구제불능이다.)으로 옮겨갈 수 있다.
  • 상대방에게 갖는 기대감과 사랑의 약속은 연인 관계를 발전시키는 중요한 역할을 한다. 하지만 그러한 기대감은 현실적이어야 한다.
  • 부부는 충돌을 싫어한다. 그러나 충돌하게 되면 피하면 안된다. 우리는 최대한 유익한 방향으로 해결하는 방법을 배워야 한다.

3. 완벽을 넘어 최적으로

1) 변화의 첫걸음

  • 변화의 의지가 있는지 없는지가 중요한 것이 아니다. 변화할 준비가 되었는지가 중요하다 (제임스 고든)
  • 변화하기 위해서는 우선 무엇을 버리고 싶은지 무엇을 지키고 싶은지를 정확하게 알아야 한다.
  • 사람들은 실패에 대한 두려움과 고통스러운 감정에 대한 거부를 버리고 싶은 한편, 추진력과 야망은 지키고 싶어한다. 일단 바꾸고 싶은 특성과 바꾸고 싶지 않은 특성을 확인하면 갈등이 줄어든다.

2) 왜곡된 생각을 제거하라

  • 인지치료의 기본적인 전제는 우리가 어떤 사건에 직접적으로 반응하는 것이 아니라 사건에 대한 자의적인 해석에 의해 반응한다는 것이다. (사건->생각->감정)
  • 인지치료의 목표는 왜곡된 사고를 제거함으로써 현실감각을 회복하는 것이다. 어떤 생각이 비합리적인지(인지의 왜곡)인지 판단하고 그러한 생각을 바꾸면 감정도 바뀌게 된다.
  • 왜곡된 감정을 극복하는 방법 : 나 자신에게 인간적인 감정을 허용하고(감정을 있는 그대로 받아들이고), 상황을 재구성하고(단점보다 장점을 찾을 수 있도록), 거리를 두고 바라보는(좀더 큰 틀에서 현재의 상황을 파악) 3단계를 통해 극복
  • 첫째, 나 자신의 실수를 허락하고 실망감과 좌절을 느끼는대로 경험, 그런 감정을 느끼는 나 자신을 벌하지 않고 감정을 있는 그대로 받아들인다. 둘째, 그 상황을 재구성해서 긍정적인 측면에 대해 생각했다. 그 일을 계기로 나는 내가 너무 바쁘게 생활하고 있으며, 가족과 시간을 보내거나 글을 쓰는 것처럼 중요한 일을 하기 위해서는 다른 일을 줄일 필요가 있다는 사실을 깨달았다. 셋째 마지막으로 좀 더 멀리 내다보면, 내가 당장 그 글을 쓰지 못한다고 해도 1년 후에 혹은 그 이후에도 큰 문제가 되지 않는 다는 사실을 깨닫는다.

3) 상대방의 입장이 되어라

  • 처음 이 일을 시작했을 때는 나는 내담자를 어떻게 치료하고 변화시켜야 할지 생각했다. 지금은 나 자신에게 이렇게 질문을 한다. ‘어떻게 하면 이 사람이 성장하도록 도와줄 수 있을까?’ (칼 로저스)
  • 우리는 종종 고민을 이야기하는 친구에게 도움을 주겠다는 생각으로 조언을 한다. 그러나 정작 친구는 우리 생각과 정반대로 느낄 수 있다. 그 이유는 다음과 같다. 첫째, 해결책을 제시하는 것은 두 사람 사이에 거리를 만든다. 한 사람은 어떻게 해야 하는지 아는 입장이고 또 한 사람은 모르는 입장이기 때문이다. 둘째, 그렇지 않아도 힘든 사람에게 열등감을 느끼게 한다. 본의 아니게 우쭐거리면서 온정을 베푸는 것처럼 보일 수도 있다.
  • 인간은 수학공식처럼 특별한 변수의 자리에 적절한 숫자를 대입해서 문제를 해결할 수 있는 존재가 아니다. 특히 곤경에 처하거나 약해졌을 때 인간의 심리는 해결책과 조언보다는 이해와 사랑을 필요로 한다.

4) 감정은 영혼의 표현이다

  • 완벽히 행복한 사회를 육성하는 것은 공포 문화를 조장하는 것이다. (에릭 G. 윌슨)
  • 우리 문화는 완벽한 즐거움에 집착하며, 행복하고 충만한 삶에는 고통스러운 감정이 없어야 한다고 믿는다.
  • 이별로 힘들어 하는 사람은 약이 아니라 슬퍼할 시간이 필요하다.
  • 고통스러운 감정을 이겨내면 전보다 더 강해진다. 감정은 영혼의 표현이다. 감정을 읽고 그 안에 담긴 메시지를 이해하고 적절한 행동을 취하는 법을 배워야 한다.
  • 감정의 목소리를 드는 것은 매우 중요하다. 그 목소리를 억지로 잠잠하게 만든다면 결국 나 자신과 주면 사람들에게 해를 끼치게 된다.

5) 고통이 주는 놀라운 선물

  • 말로 표현할 수 없는 뼈저린 고통은 새로운 삶으로 들어가는 세례, 부할, 입문이라고 부를 수 있다. (조지 엘리엇)
  • 우리가 고통을 처리하는 방식은 문화로부터 큰 영향을 받았다. 일반적으로 고통스러운 감정을 거부한다. 우리가 행복을 추구하는 것을 방해하는 감정으로 생각하기 때문이다.
  • 지혜는 고통의 경험에서 온다. 우리는 모든 것이 순조로울 때는 우리의 삶과 상황에 대해 질문하지 않는다. 힘든 상황이 닥칠 때 비로소 삶과 경험을 진중히 돌아보게 된다.
  • 고통과 기쁨은 감정이입을 가르쳐주고, 우리를 다른 사람의 영혼과 가슴속에 들어가게 해준다. 그 투명한 순간에 상대방의 기쁨과 슬픔을 이해하고 마치 내 일인 것처럼 관심을 두게 된다.

6) 나를 사랑하는 것이 먼저다

  • 당신 자신을 사랑하는 것을 잊지 말라. (키르케고르)
  • 서양에서는 이타주의를 도덕적으로 높이 평가하기 시작하면서 자기애를 물리쳐야 할 적으로 보았다. 이 때문에 사람들은 어떻게 해서든 자기애에서 벗어나고자 했다.
  • 나 자신이 먼저입니다. 나를 받아들인 다음에 다른 사람들을 받아들일 수 있는 것입니다. 어떤 면에서 차원 높은 동정심은 이기심이 발전한 것입니다. 따라서 자기혐오가 강한 사람들은 다른 사람들을 진정으로 동정하기 어렵습니다. 동정심이 뿌리내릴 수 있는 터전이 없기 때문입니다. (달라이 라마)

7) 그럼에도 불구하고

  • 세상을 앞으로 나아가게 하는 중요한 일은 완벽한 사람들이 해줄 때까지 기다리지 않는다. (조지 엘리엇)
  • 우리 자신와 다른 사람들에 대한 우리의 관점은 긍정적인 면에 초점을 맞추는지, 부정적인 면에 초점을 맞추는지에 따라 달라진다. 링컨에 의해 노예가 해방되었지만 사실 그는 노예 해방에는 별로 관심이 없었다.
  • 우리가 다른 사람들을 평가하는 방식을 결정하는 것을 넘어서 긍정적인 면이나 부정적인 면에 초점을 맞추는 방식은 우리 자신의 생활방식에 직접적인 영향을 준다.
  • 부정적인 면에 초점을 맞추는 완벽주의자는 뭔가를 잘못하는 것이 두려운 나머지 종종 현상유지로 만족하고 결국 제자리 걸음을 하거나 뒷걸음질을 친다. 그에 비해, 긍정적인 면에 초점을 맞추는 최적주의자는 대로 실패를 하더라도 훌륭한 삶을 창조하기 위해서는 우리가 가진 장점을 능동적으로 추구해야 한다는 것을 알고 잇다.

8) 나이 듦의 즐거움

  • 젊어지려고 하거나 날씸해지려고 애쓰지 않으면 즐겁게 살 수 있다. (윌리엄 제임스)
  • 노화를 부정적으로 생각하는 이유 중 하나는 대체로 오늘날 젊은 세대가 더 이상 연장자들에게 조언을 구하지 않기 때문이다. 그로 인해 젊은이들과, 때로 노인들 자신도 나이가 들면서 얻을 수 있는 지혜를 높이 평가하지 않는다.
  • 정신적이고 감정적인 성숙에는 지름길이 없다. 지혜, 분별력, 지성, 안목은 세월과 경험을 통해 발전할 수 있다. 노화가 주는 현실적인 도전에 능동적으로 대응할 때 우리는 그것으로부터 얻는 진정한 기회를 활용할 수 있다.
  • 20세든 80세든 여생을 자연의 순리와 싸우면서 보낼 것인지 아니면 포용할 것인지 선택해야 한다.

9) 행복한 척하지 말라

  • 우리는 모두 신경증과 열등감을 느낀다. 하지만 다른 사람들은 그런 감정을 느끼지 않을 것이라고 생각한다. 이 때문에 자신의 감정을 철저히 숨겨버린다. (다이앤 애커먼)
  • 긍정적인 감정이 물 흐르듯 계속되길 바라는 완벽주의 사고방식은 많은 불행을 야기한다. 무엇보다 고통을 감추고 미소를 짓고 용감한 표정을 짓는 법을 배운다. 우리는 모두 혼신의 힘을 다해 거짓말을 한다. 그러면서 기진맥진해진다. 거짓말은 스트레스의 주범이다.
  • 우리는 감정을 숨기는 것을 마치 진보한 것처럼 여기며 가장하지 않아야 한다.
  • 감정에 좀 더 마음을 열어야 한다는 말은 언제나 감정을 숨김없이 보여주라는 의미가 아니다. 감정을 드러내는 것이 적절하지 않거나 도움이 되지 않을 때가 있다. 따라서 우리는 감정을 여과 없이 드러내는 것과 완벽히 감추는 것 사이에서 적절하게 표현해야 한다.

10) 모르는 것, 모른다고 인정하기

  • 평범한 것에서 기적을 보는 것, 그것이 지혜롭다는 확실한 증거다. (랠프 월도 에머슨)
  • 우리는 때로 모른다는 사실을 인정해야 한다. 불확실한 세상을 좀더 편안하게 느끼기 위해서는 불확실성을 포용해야 한다. 일단 우리의 무지함을 인정하면 우리 몸은 미지에 대한 불안감을 경외감과 경이로음으로 재구성할 준비가 된다.
  • 우리 자신이나 다른 사람들의 무지함을 받아들이고 포용하는 것은 패배주의가 아니다. 조직행위학자 칼 웨익은 ‘불신을 정당화하는 리더십’이라는 논문에서, 크게 성공한 사람들은 불확실성을 포용하고 자신이 모른다는 사실을 인정하는 것을 두려워하지 않는다고 말한다. 무지를 인정하고 이로 부터 배우기 위한 접근 방법을 찾아가는 것이다.

'BookStory' 카테고리의 다른 글

[독서] 혁신의 설계자  (0) 2016.11.04
[MSSQL] SQL Server Tacklebox (무료 책)  (0) 2013.01.14
사고싶은 책들~~~  (0) 2012.05.25
[도서] iSad ...  (0) 2011.10.07
[도서] 관심을 가지고 있는 도서  (0) 2011.09.20
posted by LifeisSimple