반응형
반응형

 

 

 

BEGIN TRANSACTION CandidateDelete
    WITH MARK N'Deleting a Job Candidate';
GO
USE AdventureWorks2012;
GO
DELETE FROM AdventureWorks2012.HumanResources.JobCandidate
    WHERE JobCandidateID = 13;
GO
COMMIT TRANSACTION CandidateDelete;
GO

 

 

 

 

BEGIN TRAN @TransactionName
       INSERT INTO ValueTable VALUES(1), (2);
ROLLBACK TRAN @TransactionName;

반응형
반응형

COMPUTE BY 절을 이용하면 하나의 SELECT 문으로 세부 행과 요약 행을 모두 볼 수 있습니다. 또한 하위 그룹에 대한 요약 값을 계산하거나 전체 결과 집합의 요약 값을 계산할 수 있습니다.

COMPUTE 절에는 다음 정보를 지정해야 합니다.

  • 선택적 BY 키워드. 열 기준당 지정된 행 집계를 계산합니다.

  • 행 집계 함수 이름. SUM, AVG, MIN, MAX 또는 COUNT가 포함됩니다.

  • 행 집계 함수를 실행할 열

COMPUTE로 생성된 요약 값은 쿼리 결과에서 별도의 결과 집합으로 나타납니다. COMPUTE 절이 포함된 쿼리의 결과는 사용자가 지정한 그룹이나 구분에 따라 요약 값을 제어하는 CONTROL-BREAK 보고서와 비슷합니다. 그룹별 요약 값을 계산하고 같은 그룹에 대한 집계 함수를 두 개 이상 계산할 수도 있습니다.

선택적 BY 절과 함께 COMPUTE를 지정하면 각 그룹별로 SELECT의 조건을 충족하는 두 개의 결과 집합이 생성됩니다.

  • 각 그룹의 첫 번째 결과 집합은 해당 그룹의 SELECT 목록 정보가 포함된 세부 행 집합입니다.

  • 각 그룹의 두 번째 결과 집합은 해당 그룹의 COMPUTE 절에 지정된 집계 함수의 부분합이 지정된 한 행입니다.

선택적 BY 절 없이 COMPUTE를 지정해도 SELECT의 조건을 충족하는 두 개의 결과 집합이 생성됩니다.

  • 각 그룹의 첫 번째 결과 집합은 SELECT 목록 정보가 포함된 모든 세부 행입니다.

  • 두 번째 결과 집합은 COMPUTE 절에 지정된 집계 함수의 합계가 포함된 한 행입니다.

다음은 간단한 COMPUTE 절을 사용하여 SalesOrderDetail 테이블에서 단가와 할인액의 총계를 반환하는 SELECT 문입니다.

USE AdventureWorks2008R2;
GO
SELECT SalesOrderID, UnitPrice, UnitPriceDiscount
FROM Sales.SalesOrderDetail
ORDER BY SalesOrderID
COMPUTE SUM(UnitPrice), SUM(UnitPriceDiscount);

 

다음은 선택적 BY 키워드를 COMPUTE 절에 추가하여 각 판매 주문의 부분합을 반환하는 쿼리입니다.

USE AdventureWorks2008R2;
GO
SELECT SalesOrderID, UnitPrice, UnitPriceDiscount
FROM Sales.SalesOrderDetail
ORDER BY SalesOrderID
COMPUTE SUM(UnitPrice), SUM(UnitPriceDiscount) BY SalesOrderID;

SELECT 문은 각 판매 주문에 대해 두 개의 결과 집합을 반환합니다. 각 판매 주문의 첫 번째 결과 집합은 SELECT 목록에서 지정한 정보가 포함된 행 집합이고 두 번째 결과 집합은 COMPUTE 절에 지정된 두 가지 SUM 함수의 부분합입니다.

참고참고

osql과 같은 유틸리티는 각 부분합이 결과 집합에서 별도의 행으로 보이도록 여러 개의 부분합이나 합계 요약을 표시합니다. 이것은 유틸리티에서 결과를 표시하는 방식 때문이며 부분합이나 합계는 한 행에 반환됩니다. SQL Server Management Studio와 같은 응용 프로그램에서는 여러 종류의 집계를 같은 줄에 표시합니다.

 

 

COMPUTE와 GROUP BY의 차이를 요약하면 다음과 같습니다.

  • GROUP BY는 단일 결과 집합을 반환합니다. 각 그룹별로 그룹화 열과 해당 그룹의 하위 집계를 보여 주는 집계 함수가 포함된 하나의 행이 있습니다. SELECT 목록에는 그룹화 열과 집계 함수만 포함될 수 있습니다.

  • COMPUTE는 여러 결과 집합을 반환합니다. 각 그룹별로 SELECT 목록의 식이 있는 세부 행이 포함된 결과 집합과 그룹의 하위 집계나 SELECT 문의 합계가 포함된 결과 집합이 있습니다. SELECT 목록에는 그룹화 열이나 집계 함수가 아닌 식이 포함될 수 있으며 집계 함수는 SELECT 목록이 아니라 COMPUTE 절에 지정됩니다.

다음은 GROUP BY와 집계 함수를 사용하는 쿼리입니다. 이 쿼리는 각 그룹별로 해당 그룹의 부분합이 포함된 행이 있는 단일 결과 집합을 반환합니다.

USE AdventureWorks2008R2;
GO
SELECT SalesOrderID, SUM(UnitPrice), SUM(UnitPriceDiscount)
FROM Sales.SalesOrderDetail
GROUP BY SalesOrderID;
참고참고

COMPUTE나 COMPUTE BY 절에는 ntext, text 또는 image 데이터 형식을 포함할 수 없습니다.

 

반응형
반응형

OpenTSDB: Scalable time-series database

opentsdb

 

What's OpenTSDB?

OpenTSDB is a distributed, scalable Time Series Database (TSDB) written on top of HBase. OpenTSDB was written to address a common need: store, index and serve metrics collected from computer systems (network gear, operating systems, applications) at a large scale, and make this data easily accessible and graphable.

Thanks to HBase's scalability, OpenTSDB allows you to collect many thousands of metrics from thousands of hosts and applications, at a high rate (every few seconds). OpenTSDB will never delete or downsample data and can easily store billions of data points. As a matter of fact,StumbleUpon uses it to keep track of hundred of thousands of time series and collects over 1 billion data points per day in their main production datacenter. Other sites such asBox orTumblr are pushing tens of billions of data points per day.

Imagine having the ability to quickly plot a graph showing the number ofDELETE statements going to your MySQL database along with the number of slow queries and temporary files created, and correlate this with the 99th percentile of your service's latency. OpenTSDB makes generating such graphs on the fly a trivial operation, while manipulating millions of data point for very fine grained, real-time monitoring.

반응형
반응형

RocksDB: Persistent key-value store for fast storage http://ow.ly/2BzPfY

 

RocksDB: Persistent key-value store for fast storage

Embedded key-value store for fast storage

rocksdb

Homepage: http://rocksdb.org/
GitHub: https://github.com/facebook/rocksdb
Docs: http://rocksdb.org/overview.html

 

 

The rocksdb library provides a persistent key value store. Keys and values are arbitrary byte arrays. The keys are ordered within the key value store according to a user-specified comparator function.

The library is maintained by the Facebook Database Engineering Team, and is based on leveldb, by Sanjay Ghemawat and Jeff Dean at Google.

This overview gives some simple examples of how RocksDB is used. For the story of why RocksDB was created in the first place, see Dhruba Borthakur's introductory talk from the Data @ Scale 2013 conference.

 

 

 

반응형
반응형

 

getdate()에 1초 더하기

 

SELECT getdate(),(dateadd(s,1,getdate()))

 

 

반응형
반응형
NoSql 활용 - 특징

 

- 다수의 사용자 요청을 빠른 시간 내에 모두 처리

- 서비스에서 읽기/쓰기 비율 중 데이터 쓰기 비율이 높음

- 저장된 데이터의 일관성이 중요하게 여겨짐

- 스키마가 없는 데이터 형태(schema-less)

- 네트워크 기반 분산 데이터베이스가 가진 확장성

 

* 저장과 처리 시간 주기에 맞춰 데이터 종류를 나누어 보자.

 - 빠른 주기로 빈번하게 저장 및 처리되는 캐시 영역의 데이터

     : 수 ms 단위로 데이터 처리

 - 일정 주기로 아카이빙돼 시점 복원이 가능하도록 관리되는 데이터

     : 수 분 이내로 이전 상태로 복구 가능한 데이터 처리

 - 일정 주기로 데이터를 집계해 게임 내에 다시 반영하는 데이터

    : 실시간 랭킹, 개인 요약 정보, 최근 아이템 교환 비율 등

 - 각종 사용자 이벤트 발생에 따라 그 이력을 관리하는 로그 데이터

 

* 저장형태에 따른 구분

 Key-value

 Ordered Key-value

 Wide Column Store

 Document

 Graph

 

* NoSQL - 어떻게 선택해야 할까? : http://platformadvisory.kr/archives/608

 

* 한 눈에 살펴보는 PostgreSQL : http://helloworld.naver.com/helloworld/227936

반응형

+ Recent posts