생계/튜닝2019. 11. 1. 11:52

아래와 같은 쿼리가 있다. 


SELECT *

 FROM A,

           ( 

           SELECT ...

              FROM (

                         SELECT

                          FROM ...

                        WHERE  A.COL1 = B.COL1

                           AND A.COL2 = B.COL2

                        GROUP BY ...

                     )

) INLINEVIEW B

WHERE  A.COL1='AA' AND   A.COL3 > SYSDATE -3

    AND A.COL1 = B.COL1(+)

    AND A.COL2 = B.COL2(+)


위 구조에서

인라인뷰 B 가 GROUP BY 등으로 가공된 집합이라면

A 의 조건들이 인라인뷰로 파고들어가지 못한다. 

인라인 뷰는 기본적으로 일반테이블과 조인시 동등한 관계이기 때문


만약,  테이블 A 와 인라인 뷰가 1:1 이나 M:1 조인이라면 (조인으로 인해 결과 ROWS 가 바뀌지 않는다면)

인라인뷰를 스칼라서브쿼리로 바꿔줄수 있다. 


SELECT XXX,

          ( 

           SELECT ...

              FROM (

                         SELECT

                          FROM ...

                        WHERE  A.COL1 = B.COL1

                           AND A.COL2 = B.COL2

                        GROUP BY ...

                     )

)

 FROM A

WHERE  A.COL1='AA' AND   A.COL3 > SYSDATE -3


스칼라서브쿼리는 메인테이블에 종속적 관계이기 때문에 메인테이블을 참조해서 쓸수있다. 

그러나, 1:1 이나 M:1 의 관계가 아니라면 쓸수 없다.


그렇다면 WITH 절을 활용해서 메인테이블을 참조할수 있게 해보자.


WITH MAIN AS (  

   SELECT ..

    FROM A

   WHERE

),

INLINEVIEW AS (

  SELECT ...

              FROM (

                         SELECT

                          FROM ...

                        WHERE  MAIN.COL1 = B.COL1

                           AND MAIN.COL2 = B.COL2

                        GROUP BY ...

                       )

)



SELECT *

 FROM MAIN  A

         , INLINEVIEW  B

  

WHERE  A.COL1 = B.COL1(+)

    AND A.COL2 = B.COL2(+)




스칼라서브쿼리로 변경한 것보다 비효율은 존재하지만 

인라인뷰가 1의 집합이 아닌경우에도 쓸수있다. 


## 쿼리를 잘모르는 개발자들은 업무에 대한 쿼리를 업무요건에 따라 그때 그때 만들기보다

모듈 개념으로 여기서 쓰던 쿼리를 그대로 따오는 경향이 있다. 

그런 케이스에서 위와 같은 비효율이 존재하는 쿼리가 만들어진다. 

반응형

'생계 > 튜닝' 카테고리의 다른 글

rac 환경 통계수집 후 no_invalidate  (0) 2023.06.10
오라클 AWR 사용하기  (0) 2023.05.13
[SQL]열거된 OR 제거하기. IN 사용  (0) 2020.11.13
동일패턴 추가되는 NOT IN 절  (0) 2019.11.01
[SQL] 전월 증감 리포트  (0) 2019.11.01
Posted by 돌고래트레이너
정보/블로그 IT 팁2019. 10. 26. 03:07


  •  추세반전

 
지난 분기에는 네이버가 검색로직을 변경한 이후로 네이버 유입률이 제로가 되면서 내 블로그의 시련이 닥쳐왔었다.
의욕 상실과 더불어 이직으로 인해 블로그에 신경을 못쓰고 지냈는데, 최근에 다시 추세 반전이 일어났다. 

블로그는 희안하게도 신경쓰면 잠깐 반짝하고 죽어가다가 아예 손을 놓으면 다시 살아나는거 같다. 
왜그런걸까..

추세반전의 이유를 분석해봤는데.. 

 - 네이버 검색 점유율 하락
 - 유튜버 부상

이정도 이유를 찾을수 있었다. 
여전히 국내검색시장점유율은 네이버가 여포이지만, 구글이 많이 따라잡았다. 
여전히 다음은 마이너를 못벗어난다. 
네이버검색 유입이 늘어날 기미는 거의 보이지 않는거 같다. 구글을 응원할 수 밖에..

요즘은 유튜버들이 많이 생겨나면서 몇몇 블로거들도 그쪽으로 가서 상대적으로 그쪽 점유율을 나눠갖는것 같다.
유튜브는 나도 고민을 잠깐 해봤지만 너무 소모적일것 같아서 생각을 접었다. 


  • 키워드 잡기

특정 검색어를 입력했을때 내 블로그 결과가 1,2 페이지내에 나타나지 않으면 사실상 노출은 거의 안된다.
이때 그 검색어가 일반적인 성격인지 특정적인지에 따라서 경쟁이나 유입량이 많이 좌우된다. 

예를 들어..

'발리 여행' 이란 굉장히 일반적인 검색어를 입력했을 때 내 블로그가 첫번째로 노출된 적이 있었고,
그 포스팅으로 인한 유입량이 상당했었다. 


그러나 첫번째 노출은 그리 오래가지 않았고 지금은 두번째 페이지로 밀려났다. 
그에따라 유입량도 현저히 줄어들었다. 
사실 경쟁이 치열한 카테고리라서 기대를 안했는데 잠깐이나마 상위노출된것이 신기할따름이었다. 


반면 '사마의 최후의 승자' 라는 검색어는 내 글이 첫번째 노출이 되어있다. 


하지만 이 키워드는 굉장히 좁은 층의 사용자들이 사용한다. 
장점은 경쟁이 심하지 않아서 1년이 지난 지금도 첫번째 노출이라는 것..
#이것은 온라인 마켓팅이란것과 관련이 많이 있다. 

인기검색어에 상위노출되는 것에는 딜레마가 따른다. 
내가 왜 블로그를 하는가? 근원적인 질문이 따라온다. 
유입량 때문에 인기키워드의 글을 일부러 쓸수야 있겠지만 결국 나의 관심사가 아니기 때문에 
이렇게까지 해야하나 하는 현타가 올것이다. 
그렇다고 내가 쓰고 싶은 주제의 글만 고집한다면 유입량은 더딜 것이고, 짧은 시간에 
많은 유입량을 끌어내는 블로그를 본다면 허탈감이 들기도 한다. 

다음달이면 아마도 애드센스 100불 달성이 될것 같다. 블로그 개설한지 2년이 조금 넘은것을 감안하면
수익성으로 본다면 낙제점이다. 자기만족이 아니라면 중도에 이미 접었을 것이다. 
여튼 나는 나의 길을 계속 가겠지만 역시나 고민은 계속 될 것 같다. 


  • GA 데이터

  3월 말부터 현재(10월 말까지) 데이터로 뽑아봤다. 

 - 방문자 추이 




  주말에 골짜기 생기는건 어찌 안되나 보다. 


- 접속 국가 


 



  •  인기포스팅 top 10
 


1. 헬스 8개월 헬린이 운동 팁 

2. 구글 클라우드 플랫폼 무료 계정 사용하기 

3. MariaDB 바이너리 설치 10.2.7 CentOS  

4. 스키마모드 datapump 테스트  

5. 퀘이커 오트밀 대신 먹는거 

6. 퀘이커 오트밀 후기  

7. [매년] 전자세금계산서 발급용 공인인증서 갱신 하기 

8. mariaDB bin log 위치 변경  

9. 턱걸이 손바닥 굳은 살 원인 

10. 초보자를 위한 발리 서핑 알아두면 좋은 것들 (샵 선택) 



의외의 결과들이 몇개 있다. 

1. 운동 관련글을 몇개 쓰긴 했는데 헬린이의 글을 많이도 보셨다. 전혀 예상못한 결과다. 

2. IT 관련들글이 상위에 올라오다니... 소수의 특정층만 검색할수밖에 없는 글인데..

pc 유입과 모바일 유입이 확 갈린다. 

IT글은 pc, 기타 가벼운 정보성 글은 모바일 유입.


  •  결론 :

잘하자..






반응형
Posted by 돌고래트레이너
Travel/발리 2019092019. 10. 23. 00:45

 

발리에 서핑 외에 할만한 액티비티는 어떤게 있을까?.. 

하는 고민과 함께 검색을 해보았습니다. 

서핑 말고 할수 있는 것들은 아래 정도 가 있습니다. 

 - 스쿠버다이빙

 - 스노클링

 - 바투르 트레킹

 - 아융강 레프팅 

위에 말고도 더 많은 액티비티, 투어가 있습니다. 

https://www.klook.com/ko/search/?container_type=city&type=city&city_id=8&template_id=3&revamp_template_id=3&revamp_city_id=8&revamp_index=1&revamp_x=-157.714&fixed_revamp_x=0

 

발리의 신나는 액티비티 & 체험 - Klook

발리의 현지 문화를 경험하고 싶으신가요? 지금 바로 클룩에서 최고의 액티비티와 체험 상품을 특별 할인가로 예약하고 모험을 떠나보세요!

www.klook.com

 

다이빙은 비용이 조금 부담스럽고, 레프팅은 그냥 좀 위험해보여서 하기 꺼려집니다. 

스노클링을 말하자면.. 사실 발리는 스노클링에 좋은 곳은 아닙니다. 

서핑과 스노클링의 관점에서 본다면 발리는 괌과 정반대의 위치에 있는 것 같습니다. 

스노클링하기 좋으려면 물에서 시야확보가 충분히 될 만큼 물이 깨끗해야 하는데 

발리는 적당한 곳이 있긴 있는데 멀리 가야합니다. 괌은 그런 곳이 참 많습니다. 

그냥 아무데나 가도 물이 바닥까지 다 보입니다.  반면 서핑하기에 괌은 참 열악합니다. 

 


여튼 검색끝에 트레킹이 가장 적당해 보였습니다. 

그래서 선택했는데 ..

음..  과연...

결론 부터 말하자면.. 빡셉니다..  산을 오르는 과정이 너무 힘들고 위험하기까지 합니다. 

(바투르 트레킹이라고 나와있는 여행상품들은 정확하게 말하자면 바투르 일출 트레킹입니다.

 일출을 보려고 굳이 그런 새벽에 암것도 안보이는 산을 오르는 겁니다. )

어두컴컴한 산 길이고 딱딱한 바닥이 아닌 밟으면 푹푹 파이는 모래같은 화산재 쌓인 길을

흙먼지를 풀풀날리며 오릅니다. 

돌아갈 수 없기에 끝까지 올랐을 뿐 오르는 내내 나의 결정을 후회했습니다. 

 

그러나.. 정상에서의 일출과 하산 후의 온천은 충분히 보상이 될 만 합니다.

 

그래도 두번 가라고 하면... 저는 안갑니다.  한번은 모르고 갈수있지만.. 알고는 못갑니다. 

 

 

 

트레킹을 마치고 하산 합니다. 

작물이 우리나라랑 비슷해서 시골풍경이 낯설지 않습니다. 

 

- 온천

  바투르 트레킹에 온천 도 옵션으로 되어있는데요. 저희는 일행들이 가자는 분위기라서 갔습니다. 

  막상 가보니 흙먼지 뒤집어쓴 후 샤워할 수 있어서 참 괜찮은 옵션이라는 생각이 듭니다. 

 

 

 

- 한줄 평

  일출이 보기 좋기도 하고 의미도 있으나 너무 힘든게 걱정되시는 분들은 낮에 트레킹을 추천합니다. 

  그리고 우회로가 있다고 들었는데 그곳으로 가실것을 추천합니다. 

 

반응형
Posted by 돌고래트레이너