mssql server management studio 2012를 쓰고 있는데 문제가 되는게 쿼리 속도 관련해서인데
한 테이블에 데이터는 지금 약 134만개가 들어가 있습니다. 실제로는 더 들어갈 예정이고, 칼럼 개수는 35개이고 레코드가 134만개 인데
그냥 단순히 select 칼럼명 from 테이블 -> 이 하나의 쿼리가 sql server 에서 돌려보니 무려 7초씩이나 걸립니다.
select * from 테이블 *를 해서 모두 출력하면 10초가 넘어가기도 합니다. 이테이블에 실시간으로 15분에 데이터가 INSERT 되는 구조라 하루에 이 테이블에 100만개정도 삽입될 예정이고 , ..... 한달데이터로 치면 3000만개 정도 쌓일수도 있고 ,
select 문 하나 조차 이렇게 시간이 오래 걸려서야 이걸로 웹페이지를 만들려고 하는데 이 속도는 어떻게 해야 개선이 가능한가요?
원래 100만개 정도 있으면 저정도 속도가 걸리는 건가요? 그러면 테이블을 100만개 이하로 해서 분할 해야되는건가요? 그런 방법이 있다면 어떤건지,..... 파티션 같은게 있던데 management studio라 파티션은 안되고
도대체 무슨 방법이 있을까요? 감이 잡히지가 않습니다.
이 테이블로 다른테이블과 조인도 하고 한달 데이터 검색할려 할거를 생각하니, 어떤 방법으로 해결 할수 있는지 알고 싶습니다.
그리고 장치테이블과 연결되어 장치 하나당 15분에 하나씩 INSERT 되는데 , 즉 1시간에 4개,
하루면은 24 x 4 =96 해서 장치 하나에 하루에 96개의 데이터
약 100개로 치면 한달에 3000개의데이터 ... 1년치면 3000 x 365이고
장치는 10만개 혹은 20만개 이상 달릴 가능성이 있는데 3000 x 365 x 20만 .. 이 어마한 데이터는 어떻게 조회가 가능할수 있는지 감이 안잡히네요.
첫번째 생각 한 것으로는 엑셀로 저장하고 불러오는 방식인데 이 방식이 맞다면
이게 수동이 아니라 쿼리로 엑셀로 저장하고 불러오는게 가능한지
둘째는 일별로라던지 테이블을 여러개로 만드는 방법인데 이방법도 장치가 많을시에는 시간이 오래될거 같은데 어떤 방법들이 있을까요?
100만개를 select로 뿌려준다는 의미인지 ?
만약 이런 의미이면 속도는 어떤 디비도 마찬가지이지 않을까요....
결과가 나오기 시작하는 시간은 얼마 안걸리지만 화면에 뿌려주고 끝날때까지는 많은 시간이 걸릴듯 한데요?
웹에서 보여준다면 페이징을 하실것인데 페이징을 하시면 별문제는 없을듯 합니다.
실제 select문을 기술 하시는게...
저희는 데이타는 많지 않지만 현재 500만건 있는데 페이징하고 100개 정도씩 보여 준다면 클릭과 동시에 끝나지만
10000개를 다 뿌려줄때는 시간이 걸리네요