chatGPT 어때요?

pour 96.***.233.115

dba들한테는 어떨지 오늘은 db 쪽 질문을 해 봄. 1시간에 몇 개밖에 질문을 못 하게 해서.

총평 먼저: db 쪽 질문은 chatGPT가 stackoverflow, google 에 비해 압도적 잘 함. 회사별로 dba들 headcount 줄어들겠어…

질문: “올해 입사한 직원들 가운데 연봉이 50000불 이하인 직원에 대해서 보너스 테이블에 10k 행 추가, 5만달러 초과하며 70k 이하인 직원에 대해 8k 추가하는 sql 문장을 오라클용으로 작성해 줘” ==> Very good.

답이 길기 때문에 여기 안 올리지만 query 및 update를 포함한 거의 정확한 답 표시함 (난 insert를 요구했는데, 답변은 update를 사용한 점만 다름) . 달러, 불, k 모두 다 인식하는 게 대단하네. 그보다 더 대단한 건 new grad라면 이 정도 문장을 가지고 일을 완료하기 힘들텐데, 얘는 합리적인 가정을 한 후에 답을 풀어내는데 그게 말이 돼. 잘 질문하는 사람이 일을 더 잘 할 수 있는 시대가 왔네.

dba들이 지겹도록 반복 수행하는 sp 작성을 시켜 봄.

질문: “직원 아이디가 100인 사람의 보너스를 100k로 업데이트하는 stored procedure 하나 만들어줘” –> Very good.

오라클 용으로 sp를 작성하고 호출하는 예시도 함께 보여줌.

질문: “db2용도 하나 필요한데” –> Very good.

이게 요청하는 말이라는 걸 알아듣네? db2용으로 sp로 변환되었음.

질문: “사이붸이스용으로도 하나 부탁해” –> Very good. 일부러 오타를 넣어봐도 대충 잘 알아들음. sybase용으로 sp로 변환됨.

Reporting query도 하나 작성하도록 시켜 봄

질문: “영업 실적 러닝 토탈을 부서별, 개인별로 그루핑 한 다음 부서명 오름차순, 개인 영업실적 내림차순으로 소팅해 출력하는 sybase용 query 하나 만들어줘” –> Very good. SUM, GROUP BY써서 잘 했음.

좀 더 복잡한 running total 구하는 문제 시켜 봄.

질문: “올해 영업 실적에 한해서, 각 개인별 월말 영업 실적 월별 누계 출력하는 oracle용 쿼리 필요해” –> Good.

내가 원했던 것은 연초부터 각 월까지의 running total을 구하는 문제를 시켰는데, 답변은 각 월별 total을 구하는 쿼리를 보여줌. 그래도 잘 했음.

그래서 질문을 다시 수정함.

질문: “내가 말을 잘못 했네, 월별 누계가 아니라 연초부터 각 월까지의 누계(running total ytd)를 출력해줘” –> Very good.

analytic function은 약간 어려운 것에 속하는데, 그 중 하나인 ‘partition by’를 써서 연초부터 각 월까지의 running total을 구하는 쿼리를 보여줌. 잘 했음.

business analyst들이 요구사항을 말하면 sql 작성해서 report 뽑아주는 정도의 일을 하던 dba들은 이제 먹고 살 걱정해야 할 처지가 됐네. db 하나도 모르는 business anlayst들이 바로 bi에 대고 sql을 작성해서 넣을 수 있는 시대가 왔구나.

다음, super update라고 불리는 join과 update가 함께 포함된, 위험하면서 좀 더 난이도가 있는 쿼리를 시켜 봄.

질문: “employee 테이블에서 올해 입사한 직원을 찾고, employeeinfo 에서 fte 정보를 찾은 후, 올해 입사했고 full time employee인 경우에 한해서 보너스 10k 지급하는 super update 한 문장 작성해줘” –> Very good. 정확히 잘 수행함.

이 문장을 한 번에 작성하는 게 쉽지 않은데, 문장이 완벽히 완료되기 전에 테스트 하는 도중 실수하면 전체 행을 업데이트하는 재난이 일어나기 때문에, 매우 위험한 작업에 해당함.

질문: “거기에 더해서, 보너스 테이블을 갱신할 때 보너스 지급일을 이달 말로 해줘” –> Very good. 정확히 잘 수행함. 위 update 문장에 payout_date 필드까지 월말 날짜로 업데이트하는 기능을 추가함.

자기가 알아서 테이블 명 정하고, 필드명 정하고, 변수명 정하는데… 그 이름들이 매우 합리적임. 이 정도면 db 쪽에서는 신입 1년차 dba 보다 낫다.

질문: “oracle 서버 메모리 캐시 히트가 95% 이하로 내려갔는지 확인해줘” –> Very good. 뷰 조회하는 쿼리 보여줌.

질문: “캐시 사이즈를 1G 더 올리고 싶은데, 절차는?” –> Very good.

oracle 얘기하는 중이었다는 context도 잘 알고 있고, 내가 sga라는 말도 안 했는데 오라클 캐시면 당연히 sga지 하고 알아서 sga 라는 걸 알아듣고 그거 수정하는 방법 보여줌. 1G를 1GB로 알아들은 것도 잘 했고. 잘 했쓰…

질문: “cpu fault가 생겨서 서버가 안 뜨네. database 가 포함된 하드를 다른 서버로 옮겨야 해. 절차는?” –> Very good. 6개 스텝을 보여줌.

질문: “datafiles, control files, redo logs, parameter files 파일의 경로는 어디지?” –> Very good. 각 파일의 위치 표시함.