예> 거래처가 만개가 되는데 이걸 클라이언트에서 사용자가 아주쉽게 찾고
입력수정삭제를 용이하게 하고 싶어요.
하나하나를 불러오거나 수정 삭제는 쉽다고 생각되나...
여러개를 보여준상태에서 하고싶습니다.
그렇다고 만개를 다 불러와서 쌓아놓는다는거 비 효율적이라고 생각되고요
결국엔 필터링('(주)'로시작하는것)을 하는 수밖에 없는것인지...
원격지에 있는걸... 파라독스파일처럼 직접연결한것처럼 사용할순 없는지
도사님들의 조언 부탁합니다.
우선 데이타베이스의 속도문제는 늘 따라다니는거고. 공부하면 할수록 튜닝이라는게 어렵게 느껴지더라구요..
튜닝에 대한 정답은 없어보이고.. 프로젝트에 따라서 프로젝트에 맞는 튜닝을 해주어야 하고 또 설계변경또한 용의하게 해야 겠죠..
컬럼중에 큰 컬럼이 있다거나 아니면 전체 컬럼이 필요없는 경우가 대부분일
테니까 해당컬럼은 불러오지 않게 수정하고 각 데이타의 상세내용을 불러올때 해당 레코드만 따로 한번더 불러쓰는게 속도 부분에서 조금더 이득을 볼수 있습니다. C/S에선 특히 더 그렇겠죠....
'결국엔 필터링('(주)'로시작하는것)을 하는 수밖에 없는것인지... '
이건 무슨말씀이신지 잘 모르겠는데.. 아마 조건검색한다는 말처럼 들리네요.
이건 당연한겁니다. 데이타베이스를 한다면 전체 테이블에 대한 풀탐색은
불가피한 경우에만 사용되어지도록 해야 합니다. 아니면 몇건 안되는 테이블이거나... 님처럼 그렇게 많지 않는 데이타의 경우에는 무리는 없겠지만 엄청난 데이타라면 그 결과가 몇시간이 거릴지 혹은 몇일이 걸릴지 예상할수 없으니까요..
그리고 sql 을 만들어 줄때도 인덱스에 대해서 아주 많은 신경을 쓰시는게
좋고.. where 구문을 사용하실때도 인덱스의 사용에 대해서 고려해서 만드셔야 합니다. 이런거 이야기할려면 정말 한도 끝도 없어요..
기본적으로 from 절의 테이블 순서. where 절에서의 조건을 넣어줄때라던지
조인할때도 마찬가지고요..
처음 설계 하실때부터 인덱스에 대한 고려 속도에 대한 고려가 되어있어야 합니다. 잘못된 설계로 인해 수많은 테이블에 대한 조인을 걸어야 하는경우가 생기니까요...
설계가 그리 나쁘지 않다면 인덱스 설계와 데이타베이스 튜닝과 SQL 튜닝만으로 몇분이 소요되는 작업을 1초미만까지 줄일수 있는게 데이타베이스입니다.
제경험을 말씀드리면 그때는 일반 PC에서 Sybase를 사용했었는데.
두개의 테이블이 하나는 수십만건 하나는 이백만건 정도 되는거였죠.
두객가 마스터 디테일구조였는데.. 데이타베이스에 대한 경험이 없을때였으니 프로그램 다만들고 문제를 발견했죠. 그때는 그냥 테스트 데이타 만들어도 수백건 수천건 정도였으니.. 그런걸 알리가 있었겠습니까.
마스터에서 1건에 대한 디테일을 불러오는데. 보통 몇건정도밖에 안되는거였죠. 몇백만건에서 단 몇개의 레코드를 불러오는테 탐색시간이 몇분이 소요되었어요.. 인덱스가 있는데도 말이죠.. ( 물론 잘못된 인덱스 엿지만 )
몇일을 고생해서(거의 일주일을..)책이란 책은 다뒤지고 공부하고 해서 다시 만들었죠.. 제대로된 인덱스를 만들고 SQL문을 수정하니 결과는 1초미만이더군요.. 그때가 다만들고 납품할때였거든요. 모두들 대만족이였죠. 그때 기억은 아직도 못잊겠네요. 디비할때의 가장큰 기쁨같네요..
별도움 안되는 거 이야기한것 같은데. 음... 되도록 적은 데이타만을 불러오도록 하고 인덱스에 대해 신경을 많이 써주신다면 만건정도의 데이타가 아니라 수십만건 정도는 가볍게 다루실수 있을겁니다.
단지 데이타를 불러다가 로컬에 쌓는다는건 솔직히 좀 그렇네요..
신경도 많이 쓰이고 에러가 생길 여지도 많고.. 제 주관이지만
UpdateSQL도 잘 안쓸려고 했던 저이니..
만건이면 많은데이타라고 볼수 없는데요..
소형 데이타에 속한다고 보시는게.....
문제가 무엇인지 잘 모르겠어요...
자료를 불러와서 (당연히 조건검색결과겠죠) 자료수정하고 추가하면 되잖아요. 음. 아마두 sql 이니까 그걸 다시 불러와야 된다는것 때문에 그러하신거라면 .전 별로 안좋아하지만 updateSQL을 사용해 보시던지요..
당연히 전체를 다불러와서 어떤작업을 한다는건 그것 자체가 데이타베이스 개념에서 벗어나는겁니다.
그렇게 할려면 차라리 데이타베이스가 아니라 파일시스템이나 그냥 로컬데이타베이스 파일을 전송받는게 더 나을듯 생각되네요.. ^^
좀더 상세히 설명해주시면 답변이가능할것 같네요..
그럼 즐거운시간 되세요.
- 하얀까마귀 -