안녕하세요. 이곳에서 항상 많이 배우고있는데, 문제가 생격서 문의합니다.
현재 사무실에 업무용을 간단히 프로그램 만들어 사용하고 있습니다. 근데 문제가 생겼습니다.
MYSQL5 DB와 ZEOS 6.1.5 버젼을 이용해서 자료 관리를 하고있는데, 자료의 레코드수가 처음에는
얼마 안됐는데, 점점 용량이 늘어나 지금은 6만 5천 레코드가 넘습니다. 앞으로도 점점 늘어 날것이구요.
처음 개발당시에는 프로세스에서 메모리 할당량이 4메 정도 였으나 지금은 6메가 넘어가고 있습니다.
개발한 프로그래을 처음에 사용자 아이디와 로그인 아이디를 통해 접속자이 되면, 쿼리를 통해 자료를 보여주
도록 했는데, 점점 속도가 늦어지고 있습니다. 해결 방법이 없을까요....??? 프로그램을 실행시키면 약 3분 정도
있어야 로그인 창이 나타납니다. 어떻게 하면 처음 접속창이 빨리 나타날까요..? 프로그램 용량은 약 4.5메가
정도 입니다.(제 생각으로 레코드 양이 늘어남에 따라 속도가 늦어지는 것 같은데...)
아마 메인폼 실행후에 로그인 창이 뜨도록 만들어져 있는 것 같네요.
그리고, 메인폼 실행시 쿼리등도 다 오픈하는 것 같고요.
이런 경우라면 데이터가 많아질수록 느려지겠지요.
MySQL 과 Zeos 문제라기 보다는 프로그램 방식의 문제로 보입니다.
일단 로그인 처리는 메인폼 실행전에 처리되도록 하는게 좋을 것 같고요. -> dpr 소스 부분에서 처리...
계정 인증을 위해 DB 에 접속해야 한다면, DataModule 에 관련 컴포넌트를 두시고 DataModule 이 먼저 실행되도록 하면 되겠죠.
인증이 되면 메인폼을 불러들이고, 인증 실패시 바로 종료하도록 처리하면 됩니다.
일단 인증이 되어서 메인폼이 실행되었을 경우는.
기본적으로 쿼리등은 Close 상태로 두시고요. -> 미리 데이터를 불러오지 않도록.
각각의 메뉴 실행시에도 데이터가 없는 상태로 열리는게 좋겠죠. -> 코드창 등 특별한 경우는 제외.
그 후에 조회버튼 등을 클릭시 데이터를 불러오도록 처리를 하면 됩니다.
일단 프로그램 실행시에는 꼭 필요한 폼만 메모리에 떠 있도록 하는게 좋을 것 같습니다.
Project Options 에서 Auto-Create Forms 에는 꼭 있어야 하는 폼만 두면 됩니다.
DataModule, MainForm 등요.
위대한 단군혼이 살아있는 나라.... 대한민국.