알고리듬을 평가하는 두가지 기준 1. 시간 : 알고리듬의 수행 속도의 특성을 분석 2. 공간 : 알고리듬의 메모리 사용 특성을 분석 -> 시간이 빠르면서 메모리도 더 적게 사용하는 알고리듬이 이상(理想)! BUT! 두 기준은 서로 상충하는 경우가 많다. 즉, 메모리 사용량을 희생해 속도를 높이거나, 속도를 희생해서 메모리 사용량을 줄여인 알고리듬들을 훨씬 자주 볼 것이다. 시간복잡도 분석(Time complexity) 알고리듬의 수행 속도를 측정하는 방법 1. 프로그램의 수행 시간을 측정(Timer) -> 가장 직관적인 방법이지만 하드웨어, 사용 언어, 운영체제 등 외부 요소가 시간에 영향을 미치므로 부적합! 2. 수행 시간 기준 기본적인 연산의 수 비교 (ex. 사칙연산, 대소비교, 대입연산) -> 가..
알고리듬? 어떠한 문제를 해결하기 위한 일련의 절차를 공식화한 형태로 표현한 것 ※ 좋은 알고리듬은 아래 특징을 따른다. 정밀성 : 변하지 않는 명확한 작업 단계를 가져야 한다. 유일성 : 각 단계마다 명확한 다음 단계를 가져야 한다. 타당성 : 구현할 수 있고 실용적이어야 한다. 입력 : 정의된 입력을 받아들일 수 있어야 한다. 출력 : 답으로 출력을 내보낼 수 있어야 한다. 유한성 : 특정 수의 작업 이후에 정지해야 한다. 일반성 : 정의된 입력들에 일반적으로 적용할 수 있어야 한다. 알고리듬 구현 방식? 자연어, 의사코드, 순서도, 프로그래밍 언어로 다양 알고리듬 개발의 정형적인 단계 문제 정의 → 모델 고안 → 명세 작성 → 설계 → 검증 → 분석 (복잡도 등) → 구현 → 테스트 → 문서화 즉,..
1. 자바 설치 #openjdk 1.8 다운로드 cd /install_files/ tar zxvf openjdk-8u41-b04-linux-x64-14_jan_2020.tar.gz mv java-se-8u41-ri /usr/bin/ cd /usr/bin ln -s /usr/bin/java-se-8u41-ri java sudo vi /etc/profile #환경변수 설정 export JAVA_HOME=/usr/bin/java export PATH=$JAVA_HOME/bin:$PATH #버전 확인 java -version 2. 카프카 설치 #설치파일 다운로드 cd /install_files/ wget https://downloads.apache.org/kafka/2.7.0/kafka_2.13-2.7.0.tg..
1. 자바 설치 #openjdk 1.8 다운로드 cd /install_files/ tar zxvf openjdk-8u41-b04-linux-x64-14_jan_2020.tar.gz mv java-se-8u41-ri /usr/bin/ cd /usr/bin ln -s /usr/bin/java-se-8u41-ri java sudo vi /etc/profile #환경변수 설정 export JAVA_HOME=/usr/bin/java export PATH=$JAVA_HOME/bin:$PATH #버전 확인 java -version 2. 주키퍼 설치 #설치파일 다운로드 cd /install_files/ wget http://apache.mirror.cdnetworks.com/zookeeper/stable/apache-..
SQL Server 설치 후에 인스턴스 콜레이션을 변경할때 아래와 같은 순서대로 진행하면 된다. 1. CMD 관리자 모드로 실행 2. 설치파일 위치로 이동 3. 아래 명령어 실행 Setup /QUIET /ACTION=REBUILDDATABASE /INSTANCENAME=인스턴스이름(기본값: MSSQLSERVER) /SQLSYSADMINACCOUNTS=서비스계정 /SAPWD= 패스워드 /SQLCOLLATION= 변경할 콜레이션명 4. 재설치가 완료되면 작성했던 서비스계정으로 로그인
대용량 데이터베이스를 백업 및 복원할 때, 아래 쿼리를 실행하면 예상 완료시간을 확인할 수 있습니다. SELECT session_id, start_time, status, command, percent_complete, estimated_completion_time, estimated_completion_time /60/1000 as estimate_completion_minutes, --(select convert(varchar(5),getdate(),8)), DATEADD(n,(estimated_completion_time /60/1000),GETDATE()) as estimated_completion_time FROM sys.dm_exec_requests where command = 'BACKUP ..
SQL Server 인덱스 생성할때, 아래 쿼리를 이용하여 진행경과를 확인할 수 있습니다. (단, 인덱스는 Online 옵션으로 생성해야 진행경과를 확인할 수 있습니다.) SELECT object_name(object_id) table_name,index_id,rows FROM sys.partitions WHERE object_name(object_id) = '테이블명' rows 컬럼 값를 확인하여 진행경과를 확인할 수 있습니다.
운영환경에서 데이터가 증가하면서 혹은 통계업데이트에 의해 실행계획이 변경되어 쿼리가 갑자기 이전보다 확 느려질 수 있다. 아래와 같은 방법으로 실행계획을 확인할 수 있다. 1) 문제의 쿼리 찾기 --spid 찾기 select hostname, hostprocess, spid from master..sysprocesses where hostname = '호스트네임' SELECT client_net_address, session_id FROM sys.dm_exec_connections WHERE client_net_address = 'IP' --실행중인 쿼리 확인 SELECT sqltext.TEXT, req.status, req.command, req.cpu_time, req.total_elapsed_tim..
