2011-12-09 3 views
2

sqlite3_open()에서 빈 파일 이름을 지정하여 임시 데이터베이스로 SQLite 데이터베이스를 만들었습니다. 또한 'sqlite3_soft_heap_limit64()'를 사용하여 데이터베이스에서 사용할 수있는 메모리 양을 약 200KB로 제한했습니다.SQLite 3의 임시 데이터베이스를위한 데이터 저장 공간

데이터베이스 행을 계속 삽입 할 때 데이터베이스에서 사용 된 메모리 (sqlite3_memory_used()로 얻음)는 200KB에 도달 할 때까지 올라간 다음 계속 된 행 삽입으로도 일정하게 유지됩니다.

할당 한계에 도달 한 후 삽입을위한 여분의 행 공간은 어디에 있습니까? 디스크에 임시 파일이 생성되어 있습니까? 이러한 할당으로 인해 발생할 수있는 공간 문제를 제어/구성 할 수 있도록 위치를 알고 싶습니다.

답변

4

SQLite 코드를 통해이 작업이 어떻게 수행되는지 확인할 수 있습니다. 유닉스 플랫폼에서 SQLite는이 중 하나에 임시 파일을 만들려고합니다

  1. 위치가 SQLite는 글로벌 변수가 가리키는 : 디렉토리 환경 변수 'TEMP'의 가리키는
  2. sqlite3_temp_directory ' TMP '또는'TMPDIR '을 순서대로 입력하십시오.