지금까지 실습했던 데이터를 이용해서 쿼리 캐시의 사용 여부와 효과를 확인하고자 합니다.
웨어하우스를 크기와 종류를 변경하면서 지역별 주문 금액을 집계하는 쿼리를 수행합니다. 그리고 새로운 사용자를 만들어 동일한 쿼리를 수행하고 그 결과를 모니터링 해봅니다.

이번 실습을 위한 테이블이 만들어지지 않았다면 Chapter 2와 Chapter 3의 Lab에서 테이블을 생성하고 데이터를 적재해야 합니다.
본 실습에서 사용할 웨어하우스는 Chapter 4와 Chapter 7의 Lab에서 생성했고, 그 중 Chapter 7의 Lab에서는 본 실습에 사용할 role도 만들었습니다
+를 클릭하여 새 SQL Worksheet를 만듭니다...을 클릭하여 RENAME합니다// 컨텍스트 설정 USE ROLE tasty_data_engineer ; USE WAREHOUSE tasty_de_wh ; USE DATABASE tasty_db ; USE SCHEMA raw_pos ;
지역별 주문 금액을 집계하기 위해서 다음 쿼리를 실행합니다
// 쿼리 수행 #1 SELECT l.country, l.city, year(order_ts), min(order_amount), avg(order_amount), max(order_amount) FROM order_header h LEFT OUTER JOIN location l ON h.location_id = l.location_id GROUP BY ALL ORDER BY 1,2,3 ;수행시간을 기록합니다
snowsight 하단 쿼리 결과의 오른편 Query Details에서 ...을 클릭하여 View Query Profile을 선택합니다
웨어하우스의 크기를 변경하고 동일한 쿼리를 수행합니다
// 웨어하우스 크기 변경 ALTER WAREHOUSE tasty_de_wh SET WAREHOUSE_SIZE = 'SMALL' ; // 쿼리 수행 #2 SELECT l.country, l.city, year(order_ts), min(order_amount), avg(order_amount), max(order_amount) FROM order_header h LEFT OUTER JOIN location l ON h.location_id = l.location_id GROUP BY ALL ORDER BY 1,2,3 ;수행시간을 기록합니다
마찬가지로 snowsight에서 Query Profile을 확인합니다

이번에는 다른 웨어하우스를 사용하여 동일한 쿼리를 실행합니다
// 웨어하우스 변경 USE WAREHOUSE tasty_dev_wh ; // 쿼리 수행 #3 SELECT l.country, l.city, year(order_ts), min(order_amount), avg(order_amount), max(order_amount) FROM order_header h LEFT OUTER JOIN location l ON h.location_id = l.location_id GROUP BY ALL ORDER BY 1,2,3 ;수행시간을 기록합니다
같은 방식으로 Query Profile을 확인합니다
다음과 같이 동일한 쿼리를 줄바꿈하여 실행해 봅니다
// 쿼리 수행 #4 SELECT l.country, l.city, year(order_ts), min(order_amount), avg(order_amount), max(order_amount) FROM order_header h LEFT OUTER JOIN location l ON h.location_id = l.location_id GROUP BY ALL ORDER BY 1,2,3 ;수행시간을 기록합니다
같은 방식으로 Query Profile을 확인합니다
다음과 같이 신규 사용자 tasty_dev_user를 생성합니다
// 신규 사용자 생성 USE ROLE securityadmin ; CREATE USER tasty_dev_user PASSWORD='dev123' DEFAULT_ROLE=tasty_dev MUST_CHANGE_PASSWORD=false ; GRANT ROLE tasty_dev TO USER tasty_dev_user ;
snowsight의 왼쪽 하단의 로그인된 사용자 이름을 클릭하여 Sign out 합니다
account ID값을 클릭하여 로그인하거나 북마크한 로그인 페이지로 돌아가서 신규 사용자로 로그인합니다
새 워크시트를 열고 컨텍스트를 설정합니다
// 컨텍스트 설정 USE ROLE tasty_dev ; USE WAREHOUSE tasty_dev_wh ; USE DATABASE tasty_db ; USE SCHEMA raw_pos ;
동일한 쿼리를 수행합니다
// 쿼리 수행 #5 SELECT l.country, l.city, year(order_ts), min(order_amount), avg(order_amount), max(order_amount) FROM order_header h LEFT OUTER JOIN location l ON h.location_id = l.location_id GROUP BY ALL ORDER BY 1,2,3 ;
다시 sign out 하고 다시 원래 사용자로 로그인 합니다
Monitoring > Query History
User를 All로 선택합니다
Filters를 클릭하여 SQL text를 활성화하고 location이라고 넣고 (쿼리의 일부분) Apply Filters를 클릭합니다
