검색결과 리스트
DB&NoSql에 해당되는 글 40건
- 2010.10.24 [oracle] 쿼리 최적화 및 듀닝 - 1(인덱스의 기본 원리)
- 2010.10.22 [오라클] oracle 문자 함수 , 문자자르기,문자더하기
- 2010.10.21 DB 별 문자열 더하기
- 2010.10.21 [oracle] DB link 확인 하는방법 - 디비링크 확인하는 방법
- 2010.06.08 ms-sql sa 비번 변경
- 2010.04.30 MS-SQL 2000 ,2005, 2008 테이블 맟 필드 유무 확인
- 2010.03.30 [ms-sql] sa 암호 분실
- 2010.03.30 [MSSQL-DMV] 각 테이블에 할당된 공간과 실제 데이터와 인덱스가 차지하고 있는 공간 확인
- 2010.03.30 MS-SQL 시드값 확인
- 2010.03.02 로그파일 줄이기
글
오라클 성능 고도화 원리와 해벅1
오라클 성능 고도화 원리와 해법2
이 두권 ... 기격은 거이 8마넌가까이한다.. 컴퓨터 책은 너무 비싼듯하다.
책내용은 대학교때 공부하던 수준의....딱딱한 내용의 책이다.. 내가 싫어하는 스타일 ㅠㅠ
공부하면서 정리를 해볼려고한다.
책 1은 너무 기초와 원리가있어서 보기가 졸립다 나중에 함 다시 보기로하고 2권 으로 넘어가자 ㅎㅎ
1. 쿼리중 where 잘못쓰는 예
SELECT * FROM table where
잘못된경우 | 쿼리 수정 |
substr(필드,1,2)='조건' | 필드1 like '조건%' |
where 필드1<>'조건' | '조건' and 필드 <'조건' // 경우에 따라 다름 |
where 필드*12 = 350 | 필드 = 3500*12 |
필드가공, 부정형 , null 체크 등을 할경우 table full scan 현상이 발생한다.
2. 형변환 오류
varchar2 형을 + 거나 - 면서 데이터를 비교할때 문제가 생길수있다.
필드1 = substr('20091020',1,6)-1
이런 조건 절이라면
필드1 = TO_char(add_months(to_date('20091020','yyyymmdd'),-1),'yyyymm')
요런식으로 변경해보자 ...
3.형변환 필요성
--> 만약 다른형식의 데이터를 비교할때는 꼭 형변환을 한다.
이유는 DBMS가 형변환할때 여러가지이유로 정확한 데이터를 제공할수 없을수 있기 때문이다
특히 Decode 함수를 이용할때 주의해야한다.
문자 날짜일경우는 날짜로
문자 숫자일경우는 숫자로
형변환 해준다.
Decode 설명있는곳 영문이라 어려움 이해는 안간다 ㅡㅡ;;
http://download.oracle.com/docs/cd/B19306_01/server.102/b14200/functions040.htm
설정
트랙백
댓글
글
문자 조작 함수
CONCAT(column1 | expression1, column2 | expression2)
문자붙이기
SELECT concat(job,sal)
FROM emp;
CLERK800 |
SALESMAN1600 |
SALESMAN1250 |
SUBSTR(column | expression, m[,n])
위치 m에서 n개 지정된 문자를 반환
m이 음수면 문자 값의 끝부터 세며, n을 생략하면 끝까지 반환 n=갯수
SELECT SUBSTR(job, 1,6)
FROM emp;
SUBSTR(JOB,1 ,6) |
---|
CLERK |
SALESM |
SALESM |
MANAGE |
LENGTH(column | expressio)
문자수 반환 ,문자열의 길이
SELECT ename, length(ename)
FROM emp;
INSTR(column | expression, 'string', [,m],[n])
지정된 문자열의 위치를 숫자로 반환
SELECT INSTR('Hello,World', ',W')
FROM dual;
---->6
LPAD(column | expression, n, 'string') **800
전체 폭이 n이 되도록 문자 값을 오른쪽으로 정렬하고 빈 곳을 지정한 string으로 채운다.
RPAD(column | expression, n, 'string)800**
전체 폭이 n이 되도록 문자 값을 왼쪽으로 정렬하고 빈 곳을 지정한 string으로 채운다.
SELECT LPAD(sal, 5, '*'), RPAD(sal, 6, '*')
FROM emp;
SELECT ename, CONCAT(ename, job),
LENGTH(ename), INSTR(ename, 'A'),
LPAD(sal, 5, '*'), RPAD(sal, 6, '*')
FROM emp
WHERE SUBSTR(job, 1, 5) = UPPER('sales');
ENAME | CONCAT(ENAME,JOB) | LENGTH(ENAME) | INSTR(ENAME,'A') | LPAD(SAL,5 | RPAD(SAL,6,' |
---|---|---|---|---|---|
ALLEN | ALLENSALESMAN | 5 | 1 | *1600 | 1600** |
WARD | WARDSALESMAN | 4 | 2 | *1250 | 1250** |
MARTIN | MARTINSALESMAN | 6 | 2 | *1250 | 1250** |
TURNER | TURNERSALESMAN | 6 | 0 | *1500 | 1500** |
CHR
숫자에 맞는 ASCII문자 출력
SELECT CHR(65)
FROM dual;
ASCII
해당 ASCII로 변환
SELECT ASCII('a')
FROM dual;
LTRIM
정의된 문장에서 왼쪽에서 지정된 단어가 나타나면 제거
SELECT LTRIM('xyxXxyLAST WORD', 'xy')
FROM dual;
---->XxyLAST WORD
RTRIM
정의된 문장에서 오른쪽에서 지정된 단어가 나타나면 제거
SELECT RTRIM('TURNERyxXxy', 'xy')
FROM dual;
REPLACE
해당문자가 발견되면 지정된 문자로 변환
SELECT REPLACE('JACK and JUE', 'J', 'BL')
FROM dual;
REPLACE('JACKA |
---|
BLACK and BLUE |
GREATEST
주어진 단어 중 가장 높은 값
SELECT GREATEST('HARRY', 'HARIOT', 'HALORD')
FROM dual;
처음에는 H부터 비교 -> A비교 ->
LEAST
주어진 단어 중 가장 낮은 값
SELECT LEAST('HARRY', 'HARIOT', 'HALORD')
FROM dual;
NVL
칼럼이 NULL이면 지정한 값으로 대치
SELECT NVL(sal, 0), NVL(ename, '*'),
NVL(hiredate, SYSDATE)
FROM emp;
설정
트랙백
댓글
글
MSSQL
SELECT 필드명 + 필드명 + 필드명 FROM 테이블명
SELECT 필드명 +'내용'+ 필드명 FROM 테이블명
MySQL
SELECT CONCAT(필드명,필드명,필드명) FROM 테이블명
SELECT CONCAT(필드명,'내용', 필드명) FROM 테이블명
ORACLE
SELECT 필드명 || 필드명 || 필드명 FROM 테이블명
SELECT 필드명 || '내용' || 필드명 FROM 테이블명
설정
트랙백
댓글
글
select * from all_db_links;
입력하면 해당 DB에 연결되어있는 DB 링크 리스트가 보인다.
설정
트랙백
댓글
글
설정
트랙백
댓글
글
설정
트랙백
댓글
글
C:\Program Files\Microsoft SQL Server\MSSQL\Binn>osql -E
sp_password @old = null, @new = 'newpassword', @loginame ='sa'
1. osql -E 를 통해서 윈도우인증을 통해서 MSDE에 접속합니다.
2. 그런다음 sp_password 프로시져를 통해서 sa계정의 패스워드를 재설정합니다.
출처: http://systemx.egloos.com/480207
둘째 방법
MS-SQL sa 암호를 분실했을때 이를 변경시키는 방법
1. administrator 혹은 administrator 그룹에 속한 계정으로 들어간 후 sql 서버에 로그인을 한다.
2. 쿼리 분석기를 수행하고 윈도우 인증으로 로그인을 한다.
3. 다음의 sql 구문을 수행한다.
4. 암호가 잘 바뀌었는지 확인한다. -_-;
출처: http://sqler.pe.kr/
http://www.inet.co.kr/faq/stories.php?story=03/10/14/9114497
설정
트랙백
댓글
글
set nocount on;
select
object_name(max(object_id)) [Object Name]
, sum(used_page_count) * 8 as 'Total Used(KB)'
, sum(reserved_page_count) * 8 as 'Total Reserved(KB)'
, sum(case when index_id = 0 then used_page_count else 0 end) * 8 as 'Heap(KB)'
, sum(case when index_id = 1 then used_page_count else 0 end) * 8 as 'Cluster(KB)'
, sum(case when index_id < 2 then used_page_count else 0 end) * 8 as 'Index(KB)'
, max(row_count) as 'RowCount'
, sum(in_row_used_page_count) * 8 as 'Row Used(KB)'
, sum(in_row_reserved_page_count) * 8 as 'Row Reserved(KB)'
, sum(lob_used_page_count) * 8 as 'LOB Used(KB)'
, sum(lob_reserved_page_count) * 8 as 'LOB Reserved(KB)'
, sum(row_overflow_used_page_count) * 8 as 'Overflow Used(KB)'
, sum(row_overflow_reserved_page_count) * 8 as 'Overflow Reserved(KB)'
from sys.dm_db_partition_stats with(nolock)
where object_name(object_id) not like 'sys%'
group by object_id
order by 2 desc
설정
트랙백
댓글
글
dbcc checkident('테이블 이름', noreseed)
dbcc checkident('테이블 이름', reseed, 변경값)
* 변경값은 현재시드값을 그 쪽으로 이동시켜주는 것이 됩니다. 예를 들어 증가값이 1로 identity가 설정되어있고 변경값에 40을 입력하여준 뒤 데이터를 추가시키면 컬럼값은 41이 되어서 데이터가 입력이 되게 됩니다(그리고 이 상태에서 계속 순차적으로 값이 올라갑니다)
출처 :http://azbdc.tistory.com/268
설정
트랙백
댓글
글
1.MSSQL서버매니저에서
새쿼리를 선택해서 backup log DB명 with no_log 를 실행
2.개체탐색기의 해당 DB명에서 우클릭으로 작업>축소>파일 을 선택
3.파일축소 팝업화면에서
파일유형:로그 선택
축소작업:사용하지 않는 공간 해제 선택
확인버튼 클릭
(처리는 1~2초정도)
4.로그파일 싸이즈 확인(97G -> 1.25M)
[출처] [mssql]로그파일 축소방법|작성자
RECENT COMMENT