전체 글 (73) 썸네일형 리스트형 인덱스와 DB통계 오라클에서 쿼리를 실행시키는데 이상하게 특정 쿼리가 무한로딩이 걸리는 일이 생겼다.정확히는 특정 테이블에서만 발생했었다. 선결론 : 테이블의 통계정보 문제였다.ANALYZE 명령어로 해결되었다. 다음과 같은 쿼리였다.select COUNT(1) AS CNTfrom (select * from T_TAA where F_STATUS in ('W', 'P')) T1 join T_TBB T2 on T2.F_CD = T1.F_CD;일단 실행계획부터 확인해봤다.정상적으로 인덱스도 타고 cost 소모도 크지않았다. 두번째로 TEMP 사용량 체크SELECT tablespace_name, used_blocks, free_blocksFROM v$sort_segment;용량 문제 없었다. 세번째로 PGA 메모리.. html title 커스텀(tooltip) 기본적으로 html에서 title을 제공해준다.근데 사용자에게서 요구사항이 있었다.글씨크기가 너무 작다. 키워달라...처음엔 그냥 css로 수정했다.ㅇㅇgpt가 참 편하다. 그런데 저렇게 하니 툴팁을 띄우면 기존 데이터를 가려버린다는 이슈가 또 있었다.조절을 해봤는데 title 이 나오는 위치는 참 변경이 힘들었다.(결국안됨) 그래서 그냥 너무 귀찮았지만 javascript로 넣기로 했다.조건은 2가지다.1. 글씨 크기를 크게키울것2. 본문을 가리지않게 타이틀 위치를 마우스 아래로 나오게할것 테스트입니다 $('body').append('');let tip;$('.title_tooltip[title]').mouseover(function(e.. 리눅스 DB 백업 및 복원 오라클 백업# 기본 명령어exp [사용자 이름]/[비밀번호] tables=[테이블 이름] file=[백업 파일 이름].dmp# 특정 테이블 백업exp 사용자이름/비밀번호 tables=테이블명 file=백업파일이름.dmp log=로그파일명.log direct=y compress=n statistics=none# 특정 테이블 여러개 동시백업exp 사용자이름/비밀번호 tables=TABLE1,TABLE2,TABLE3 file=백업파일이름.dmp statistics=none# 특정 사용자의 테이블 백업exp 사용자이름/비밀번호 owner=사용자이름 file=백업파일이름.dmp log=로그파일명.log direct=y compress=n statistics=none# DB전체백업(DBA 비밀번호필요)exp sys.. 현재 진행중인 쿼리확인 (dba) 웹에서 DB에 데이터 대해서 변경이나 조회를 할 때 여러가지 이유로 멈추는 경우가 종종 있다.(쿼리의 구조문제, LOCK 등등)이때 쿼리가 무한 WAIT에 걸린 경우 강제로 죽여야하는 경우가 생기는데 이때 사용하는 명령어다.해당 명령어는 직접 DB시스템에 접근하므로 DBA 권한으로 가능하다. 우선 진행중인 쿼리 확인용 쿼리다.SELECT s.username, s.osuser, s.program, sql.sql_text FROM v$session s, v$sql sql WHERE s.sql_address = sql.address AND s.sql_hash_value = sql.hash_value AND s.status = 'ACTIVE';현재 활성화 되어있는 쿼리가 출력된다. 두번째는 실질적으로 쿼리를 .. pivot (오라클11g) 프로젝트를 진행하다보면 통계를 뽑아서 출력해야되는 경우가 생긴다.아래는 예시 데이터이다 데이터를 보면 운동한 종목과 요일별로 데이터가 들어가있다.저 데이터를 종목별로 어느요일에 몇 세트를 했는지 표시하기 위해 어떻게 해야할까 가장 먼저 떠오르는건 반복문이다.저 데이터를 통째로 가져와서 for 문을 돌며 해당 요일에 맞는 데이터가 있으면 배열같은곳에 저장하고...다시 날짜별로 저장해둔 데이터를 반복하여 출력하는 식으로도 할 수 있을것이다.(별로다) 두번째로는 각 종목별이나 날짜별로 조건을 줘서 데이터를 가져오는 방식이다.출력하는데에는 1번 방법보다는 편할수 있으나 DB를 여러번 SELECT 하게 되는 문제점이 있다. 세번째로는 DECODE를 활용하는것이다.오라클 11 버전 이전에는 pivot이 없었기에.. [JS] 디스코드 노래 봇 8 최근 유튜브 노래를 가져오는 부분에서 문제가 있었다.노래를 가져오려고하면 403 에러가 나기 시작했는데 아마 유튜브 쪽에서 막은것 같다. 한동안 방치해뒀다가 다시 실행해보니 정상적으로 실행이 되었는데 확인해보니distubejs/ytdl-core 쪽에서 최근에 업데이트를 했다고 나와있었다. 어떤게 업데이트 되었나 변경된 코드를 확인해봤는데WEB_CREATOR 라는것을 사용하던 것을WEB_EMBEDDED 으로 바꿨다고 나와있었다.어저 두개의 차이점을 검색해봤는데 WEB_CREATOR 는 크리에이터 전용 API,WEB_EMBEDDED 는 YouTube API를 직접 호출하지 않고, iframe을 통해 YouTube 서버에서 자동으로 데이터를 가져옴라고 되어있었다.크리에이터 전용 api 라고 되어있지만 기본적으.. 세션관리 nohup 웹에서 사용자가 요청시 특정 프로세스를 백그라운드에서 돌려야하는 상황이 있다.해결해야 되는건 2가지가 있었다.첫번째로 사용자가 누르고 백그라운드에서 도는 동안 사용자는 페이지에서 다른 작업을 할 수 있어야한다.두번째로 프로세스 실행시간이 길어 세션이 끊어지는 상황에서도 백그라운드에서 실행된 작업은 끊기지 않아야한다.이 두 가지의 문제점으로 인해 처음 작업했던 코드이다.php 의 코드이그나이터3를 사용했다.// 사용자가 호출하는 함수function test_start(){ $cmd = "php -f /www/index.php /phs/test_ing > /data/tmp/test_back.txt 2>&1 &"; exec($cmd, $output, $return_var); print_r(.. [JS] 디스코드 노래 봇 7 예전에 만들어놓고 한동안 방치해놨지만 늦게나마 기록을 위해 코드도 정리할겸 전체 코드를 올리기로 했다.const { Client, GatewayIntentBits, ActionRowBuilder, ButtonBuilder, ButtonStyle, EmbedBuilder } = require('discord.js');const { joinVoiceChannel, createAudioPlayer, createAudioResource, AudioPlayerStatus, getVoiceConnection } = require('@discordjs/voice');//const ytdl = require('ytdl-core'); //수정예정const ytdl = require("@distube/ytdl-core.. 이전 1 2 3 4 ··· 10 다음