블랙 베리에서 SQLite로 작업하는 동안 많은 장애물을 극복했습니다. 이제는 모든 것이 잘 작동하는 것처럼 보였고 쿼리를 빠르게 할 수있는 방법을 찾고 있습니다.블랙 베리 SQLite 최적 성능
가끔 내 앱이 웹 서비스 호출에서 많은 데이터를 가져오고,이 데이터가 구문 분석되어 내 데이터베이스에 저장됩니다. 많은 DELETE, INSERT 및 UPDATE가 진행됩니다. 데이터베이스 호출에 많은 시간이 걸리는 것 같습니다.
SQLite를 다룰 때 유용한 정보를 알고 싶습니다. 블랙 베리 플랫폼에서 특별히 경험이있는 사람들이 선호합니다. DELETE 또는 INSERT 등의 속도를 높이는 모든 트릭 ....
좋은 자습서로의 링크가 좋습니다. 또는 유용한 코드를 더 잘 보여줄 수도 있습니다. 사전에
감사합니다.
편집 :
다음은 거래를 사용하는 Blackberry의 몇 가지 샘플 코드입니다.
import net.rim.device.api.ui.*;
import net.rim.device.api.ui.component.*;
import net.rim.device.api.ui.container.*;
import net.rim.device.api.database.*;
import net.rim.device.api.io.*;
public class UsingTransactions extends UiApplication
{
public static void main(String[] args)
{
UsingTransactions theApp = new UsingTransactions();
theApp.enterEventDispatcher();
}
public UsingTransactions()
{
}
}
class UsingTransactionsScreen extends MainScreen
{
Database d;
public UsingTransactionsScreen()
{
LabelField title = new LabelField("SQLite Using Transactions Sample",
LabelField.ELLIPSIS |
LabelField.USE_ALL_WIDTH);
setTitle(title);
add(new RichTextField(
"Updating data in one transaction in MyTestDatabase.db."));
try
{
URI myURI = URI.create("file:///SDCard/Databases/SQLite_Guide/" +
"MyTestDatabase.db");
d = DatabaseFactory.open(myURI);
d.beginTransaction();
Statement st = d.createStatement("UPDATE People SET Age=7 " +
"WHERE Name='Sophie'");
st.prepare();
st.execute();
st.close();
st = d.createStatement("UPDATE People SET Age=4 " +
"WHERE Name='Karen'");
st.prepare();
st.execute();
st.close();
d.commitTransaction();
d.close();
}
catch (Exception e)
{
System.out.println(e.getMessage());
e.printStackTrace();
}
}
}
매번 문장을 닫는 이유가 있습니까? 마지막으로 한 번만 닫는 것이 더 좋지 않습니까? (아마 Finally 블록에서)?
두 번째 문서는 Blackberry 문서이며, SQLite 래퍼에 원하는대로 정확하게 처리 할 수있는 것처럼 보입니다. 마지막에 "대량 작업 메소드 사용"절과 "명시 적 트랜잭션 사용"절을보십시오. 저널링을 해제 할 수도 있지만 개인적으로는별로 다르지 않습니다. –
고마워. 또한 VACUUM을 사용하여 데이터베이스 파일의 조각 모음을 수행하는 방법을 살펴 보았습니다. 얼마나 자주이 작업을 수행해야하며 db 파일 자체의 크기를 줄이는 것 이외의 다른 방법으로 도움이됩니까? – PaulG