글
유용한 DMV
SELECT TOP (100) p.name AS 'SP Name', qs.execution_count,
ISNULL(qs.execution_count/DATEDIFF(Second, qs.cached_time, GetDate()), 0) AS 'Calls/Second',
qs.total_worker_time/qs.execution_count AS 'AvgWorkerTime', qs.total_worker_time AS 'TotalWorkerTime',
qs.total_elapsed_time, qs.total_elapsed_time/qs.execution_count AS 'avg_elapsed_time', qs.last_elapsed_time,
qs.cached_time, qs.last_execution_time
FROM sys.procedures AS p
INNER JOIN sys.dm_exec_procedure_stats AS qs
ON p.object_id = qs.object_id
ORDER BY qs.execution_count DESC;
-- Top SPs By Execution Count (SQL 2005)
SELECT TOP (100) qt.text AS 'SP Name', qs.execution_count AS 'Execution Count',
qs.execution_count/DATEDIFF(Second, qs.creation_time, GetDate()) AS 'Calls/Second',
qs.total_worker_time/qs.execution_count AS 'AvgWorkerTime',
qs.total_worker_time AS 'TotalWorkerTime',
qs.total_elapsed_time/qs.execution_count AS 'AvgElapsedTime',
qs.max_logical_reads, qs.max_logical_writes, qs.total_physical_reads,
DATEDIFF(Minute, qs.creation_time, GetDate()) AS 'Age in Cache'
FROM sys.dm_exec_query_stats AS qs
CROSS APPLY sys.dm_exec_sql_text(qs.sql_handle) AS qt
WHERE qt.dbid = db_id() -- Filter by current database
ORDER BY qs.execution_count DESC
'IT/Programming > MSSQL' 카테고리의 다른 글
(MSSQL) BACKUP LOG cannot be performed because there is no current database backup (1) | 2016.04.27 |
---|---|
(MSSQL) 이번 주 월요일, 다음 주 월요일 구하기 (0) | 2016.01.18 |
(MSSQL) 모든 테이블 인덱스 재생성 쿼리 (0) | 2016.01.17 |
(MSSQL) 현재 데이터베이스에 사용자 그룹 또는 역할 이(가) 이미 있습니다 (1) | 2015.06.25 |
로그 테이블 설계 원칙 (0) | 2015.02.25 |
글
WASD 키와 방향키가 서로 바뀌었을 때
내 키보드에 얼마 전 WASD 키를 입력하면 방향키로 인식되고, 방향키를 입력하면 WASD로 입력되는 현상이 나타났었다.
정말 이 난해한 상황에 굉장히 당황 -_-; 하며 혹시라도 켜놓은 프로그램 중 이러한 키보드 매핑 변경 옵션이 있는지 찾아보았는데..
그런건 아니었고, 키보드의 fn 혹은 fn의 역할을 하는 기능키와 W를 눌렀을 때 발동되는 기능이라고 한다.
거 참 희한한 기능이 다 있네.. 게임을 즐기는 누군가에게는 필요한 기능일지도 모르겠다.
'IT/Programming > Solution/Tip' 카테고리의 다른 글
[CMake] Could NOT find OpenSSL (0) | 2015.06.11 |
---|---|
E492: Not an editor command: SrcExpl (1) | 2015.06.03 |
(Javascript) getElementsByName() 이 작동하지 않을 때 (1) | 2014.11.04 |
FTP PORT 명령 (0) | 2014.10.30 |
(MSSQL) 개체 또는 속성을 찾지 못했습니다. (2) | 2014.07.24 |
글
로그 테이블 설계 원칙
1년정도 지표처리 작업을 해오면서 느꼈던 나만의 로그 테이블 설계 원칙을 작성해본다.
1. LogDB에는 2차 가공 데이터는 없어야 한다.
-> DB에 박혀있는 값을 가공하여 DB에 INSERT 하는 것은 삼가야 한다.
-> 추가적인 가공이 필요한 데이터는 Tool 에서 진행하도록 한다.
2. 알아보기 쉽게. 간단하게 작성되어야 한다. 그렇지만 운영상에 필요한 정보는 반드시 존재하여야 한다.
-> 개발자가 LogDB를 SELECT 하는 것 만으로도 해당 로그가 어떠한 이유에서 발생한 것인지를 명확하게 알 수 있어야 한다.
-> 개발자가 생각하기에 비교적 필요없는 정보라고 할지라도, 운영상에 필요한 정보라면 반드시 남기도록 한다.
-> 특히나, 운영상에 필요한 정보가 Tool 에서 자주 요청되는 정보의 성격이라면 타협의 여지 없이 DB에 남겨야한다.
3. 공통 로그 포맷은 죄악이다.
-> 개발의 편의성을 위하여 모든 로그에 대해서 공통된 포맷을 사용하는 경우가 왕왕있다. 공통된 로그 포맷으로도 완벽히 제어할 수 있다면 문제는 없지만, 보통 그렇지 않다. 필요한 칼럼이 있으면 억지로 구겨넣지 말고 늘려야 한다.
4. 하나의 칼럼에는 하나의 정보만을 담는다.
-> 로그 시스템이 DW 이상급의 크기를 갖추지 않는다는 전제 하에, 하나의 칼럼에는 하나의 정보만을 담는 것이 좋다.
-> 개발자가 SELECT 하였을 때 WHERE 절로 바로 검색가능한 로그 포맷이어야 한다.
'IT/Programming > MSSQL' 카테고리의 다른 글
(MSSQL) BACKUP LOG cannot be performed because there is no current database backup (1) | 2016.04.27 |
---|---|
(MSSQL) 이번 주 월요일, 다음 주 월요일 구하기 (0) | 2016.01.18 |
(MSSQL) 모든 테이블 인덱스 재생성 쿼리 (0) | 2016.01.17 |
(MSSQL) 현재 데이터베이스에 사용자 그룹 또는 역할 이(가) 이미 있습니다 (1) | 2015.06.25 |
유용한 DMV (0) | 2015.05.12 |
글
HTML Input="file" 확장자 필터링
HTML input 태그에서 type을 file 로 지정하여 파일을 업로드하고자 할 때, accept 인자를 통해서 확장자 필터링을 할 수 있다.
대부분의 확장자 필터링은 아래와 같은 코드로 필터링할 수 있다.
<input type="file" accept=".FILETYPE" />
▶ CSV<input type="file" accept=".csv" />
- 주의) 만약 엑셀 CSV 파일을 화면에 띄우고자 업로드할 경우, 아래와 같은 타입은 사용하면 안된다.
text/csv
application/csv
text/comma-separated-values
(works in Opera only).
▶ Excel Files 2003-2007 (.xls)
<input type="file" accept="application/vnd.ms-excel" />
▶ Excel Files 2010 (.xlsx)
<input type="file" accept="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" />
▶ Text Files (.txt)
<input type="file" accept="text/plain" />
▶ Image Files (.png/.jpg/etc)
<input type="file" accept="image/*" />
▶ HTML Files (.htm,.html)
<input type="file" accept="text/html" />
▶ Video Files (.avi, .mpg, .mpeg, .mp4)
<input type="file" accept="video/*" />
▶ Audio Files (.mp3, .wav, etc)
<input type="file" accept="audio/*" />
▶ PDF Files
<input type="file" accept=".pdf" />
출처
: http://stackoverflow.com/questions/11832930/html-input-file-accept-attribute-file-type-csv
'IT/Programming > Programming' 카테고리의 다른 글
Unix Time Stamp(epoch) 구하기 (0) | 2014.08.26 |
---|---|
유니코드(UTF-8) 한글 코드표, 한글코드 범위 {AC00-D7AF} (0) | 2014.05.27 |
PHP 배열 활용 총망라 (0) | 2014.04.07 |
(MSSQL) 긴 동적쿼리 작성시 유의사항 (0) | 2014.02.27 |
(MSSQL) md5 사용 (0) | 2013.12.30 |
글
(Javascript) getElementsByName() 이 작동하지 않을 때
javascript 자체를 필요할 때만 잠깐 쓰다보니 했던 실수를 계속 하게 된다.
나는 이상하게도 유독히 getElementsByName() 함수를 쓸 때 실수를 하곤 하는데, 그 케이스를 정리해본다.
1. getElementsByName 을 GetElementsByName 이라고 작성하는 경우
==> --; 어.. 음.. 다른 언어에서 하던 네이밍 습관때문에 이런 것 같다. 보통은 함수의 첫자는 대문자이니깐.
javascript 에서는 getElementsByName 이다.
2. getElementsByName 을 getElementByName 이라고 작성하는 경우
==> name은 중복될 수 있는 요소이기 때문에, ID를 가져오는 함수인 getElementById 와 다르게 Element 에 s가 붙어 복수형이 된다. 주의하자.
http://anow.tistory.com/148 참고!
3. 배열 첨자를 사용하지 않았을 때
==> 이를테면 "TEST" 라는 이름을 가지고 있는 input 박스가 여러개인데,
document.getElementsByName("TEST") 으로 object를 가져오고 해당 object를 그냥 열람하려고 할 때.
이런 경우는 반드시 배열 첨자를 사용하여 가져와야 한다. 아래의 코드를 참고하자.
** 해당 이름을 가지고 있는 박스가 하나밖에 없더라도 배열 첨자를 사용해야한다. 하나밖에 없으므로 0 번째 요소를 가져오면 된다.
1)
document.getElementsByName("TEST")[0].value = "...";
2)
var obj;
obj = document.getElementsByName("TEST");
obj[0].value = "...";
위의 1, 2 코드 모두 같은 코드다. getElementsByNames 이 object를 반환하고 이를 배열 첨자를 통해 참조하는 코드이다.
이해에 어려운 사람들을 위해서 위의 1, 2 코드를 첨부하니 참고하길 바란다.
'IT/Programming > Solution/Tip' 카테고리의 다른 글
E492: Not an editor command: SrcExpl (1) | 2015.06.03 |
---|---|
WASD 키와 방향키가 서로 바뀌었을 때 (53) | 2015.03.08 |
FTP PORT 명령 (0) | 2014.10.30 |
(MSSQL) 개체 또는 속성을 찾지 못했습니다. (2) | 2014.07.24 |
XAMPP Version History (0) | 2014.04.24 |