草庐IT

TRANSACTIONS

全部标签

Android SQLite 事务和多线程

在我的应用程序中,我调用一些网络服务来更新数据库。每个Web服务调用都在特定线程中进行,导致多个线程“一次”更新数据库对象。在每个线程中,我都使用这样的事务:Thread1(webservice1)beginTransaction()insertarowinthetable1updatearowinthetable1endTransaction()Thread2(webservice2)beginTransaction()updatearowinthetable2updatearowinthetable2endTransaction()但是我在谷歌搜索后无法回答一个问题;由于事务在不同

Android SQLite 事务和多线程

在我的应用程序中,我调用一些网络服务来更新数据库。每个Web服务调用都在特定线程中进行,导致多个线程“一次”更新数据库对象。在每个线程中,我都使用这样的事务:Thread1(webservice1)beginTransaction()insertarowinthetable1updatearowinthetable1endTransaction()Thread2(webservice2)beginTransaction()updatearowinthetable2updatearowinthetable2endTransaction()但是我在谷歌搜索后无法回答一个问题;由于事务在不同

android - 我应该总是在 android sqlite 中使用事务吗?

这是一个简单的例子:publicbooleancontainsId(Longuserid){SQLiteDatabasedb=this.getReadableDatabase();Cursorcursor=db.rawQuery("select*from"+getTableName()+"whereid="+userid,null);booleanrows=cursor.getCount()>0;db.close();returnrows;}我以为sqlite会自动启动一个事务。我的同事说我必须始终开始交易。那么什么是正确的模式呢?如果我从数据库中读取数据,是否应该启动一个事务?我确信

android - 我应该总是在 android sqlite 中使用事务吗?

这是一个简单的例子:publicbooleancontainsId(Longuserid){SQLiteDatabasedb=this.getReadableDatabase();Cursorcursor=db.rawQuery("select*from"+getTableName()+"whereid="+userid,null);booleanrows=cursor.getCount()>0;db.close();returnrows;}我以为sqlite会自动启动一个事务。我的同事说我必须始终开始交易。那么什么是正确的模式呢?如果我从数据库中读取数据,是否应该启动一个事务?我确信

sqlite 从事务到保存点的转换

我的基于SQLite的应用程序目前使用事务-既可以回滚又可以提高性能。我正在考虑用保存点替换所有事务。原因是应用程序是多线程的(是的,sqlite被配置为线程安全的),在某些情况下,事务可能同时由两个线程启动(在同一时间)分贝)。有理由不这样做吗?我需要注意哪些陷阱?我是否只是将BEGIN、COMMIT、ROLLBACK替换为SAVEPOINTxyz、RELEASESAVEPOINTxyz,回滚到保存点xyz? 最佳答案 ItthereareasonNOTtodoit?是的。它不会解决您概述的任何问题。保存点主要用于能够进行部分数据

sqlite 从事务到保存点的转换

我的基于SQLite的应用程序目前使用事务-既可以回滚又可以提高性能。我正在考虑用保存点替换所有事务。原因是应用程序是多线程的(是的,sqlite被配置为线程安全的),在某些情况下,事务可能同时由两个线程启动(在同一时间)分贝)。有理由不这样做吗?我需要注意哪些陷阱?我是否只是将BEGIN、COMMIT、ROLLBACK替换为SAVEPOINTxyz、RELEASESAVEPOINTxyz,回滚到保存点xyz? 最佳答案 ItthereareasonNOTtodoit?是的。它不会解决您概述的任何问题。保存点主要用于能够进行部分数据

java - SQLiteDatabase 嵌套事务和解决方法

已编辑:是的,SQLitedoesn'tsupport嵌套事务,但是docs声明SQLiteDatabase确实如此。情况我有一个包含交易的方法,我需要从另一个交易中调用这个方法。此外-两个事务处理同一组记录,但更新不同的列。问题看起来我的外部交易的结果被内部交易取消了,但两者仍然被setTransactionSuccessful()标记为干净并被endTransaction()完成-我已经检查过了。问题-知道为什么会发生这种情况吗?-是否有推荐的方式进行此类交易? 最佳答案 “嵌套Android事务”不使用SQLites嵌套事务/

java - SQLiteDatabase 嵌套事务和解决方法

已编辑:是的,SQLitedoesn'tsupport嵌套事务,但是docs声明SQLiteDatabase确实如此。情况我有一个包含交易的方法,我需要从另一个交易中调用这个方法。此外-两个事务处理同一组记录,但更新不同的列。问题看起来我的外部交易的结果被内部交易取消了,但两者仍然被setTransactionSuccessful()标记为干净并被endTransaction()完成-我已经检查过了。问题-知道为什么会发生这种情况吗?-是否有推荐的方式进行此类交易? 最佳答案 “嵌套Android事务”不使用SQLites嵌套事务/

android - 即使有事务,SQLite 插入也会变慢

即使是事务处理,我也遇到了sqlite插入性能的问题。我的Android应用程序从Web服务接收到大约23.000行,我必须将它们插入到一个表中。Web服务是分区的,因此我在对WS的每个请求中收到大约2000行,并将2000行插入包装在一个事务中。完成这些插入后,我将新请求发送到WS,并再次为新的2000行使用新事务。一开始它工作正常。它每秒执行大量插入操作。但随着时间的推移,它变得越来越慢,最终以每秒4或3次插入结束,直到它完成23000行。是不是表的大小有问题?当它变大时,插入物变慢?有什么方法可以提高处理大量数据的性能吗?感谢您的帮助。 最佳答案

android - 即使有事务,SQLite 插入也会变慢

即使是事务处理,我也遇到了sqlite插入性能的问题。我的Android应用程序从Web服务接收到大约23.000行,我必须将它们插入到一个表中。Web服务是分区的,因此我在对WS的每个请求中收到大约2000行,并将2000行插入包装在一个事务中。完成这些插入后,我将新请求发送到WS,并再次为新的2000行使用新事务。一开始它工作正常。它每秒执行大量插入操作。但随着时间的推移,它变得越来越慢,最终以每秒4或3次插入结束,直到它完成23000行。是不是表的大小有问题?当它变大时,插入物变慢?有什么方法可以提高处理大量数据的性能吗?感谢您的帮助。 最佳答案