Sqlite操作数据库释放资源后,文件依然处于占用状态

如题,我在用sqlite操作数据库的时候明显有了
if (sqliteHelper != null)
{
sqliteHelper.Dispose();
sqliteHelper = null;
}
释放资源的过程,可是最后db3文件依然处于占用状态,请问怎么回事?过一会文件的占用状态就会恢复

1

1个回答

  if (dbo != null)
                {
                    dbo.DisConnect();
                    dbo.ReleaseDBOperator();
                   ** dbo.Dispose();**
                    dbo = null;
                }
              **  System.Data.SQLite.SQLiteConnection.ClearAllPools();**
1
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
sqlite文件被占用,如何解决
,发现文件竟然被占用了,已经关闭了数据库连接也无效,后来从网上看到需要清除连接池
SQLite优化记录 + 资源及时释放以免OOM -- 又被Java忽悠一次
今天很恼火, 大致状况是这样的, 程序直接进入数据库写操作InsertDBActivity中,异步完成80W条数据的插入, 不会OOM; 当我在进入InsertDBActivity之前先来了个用户介绍页(滑动预览6张图片), 然后换了个高清的背景图,够炫,但是悲剧的一幕发生了   在log中可以明显的看到 数据插入到40W多的时候 OOM了! 什么原因呢? 我debug追踪了好久,代码没怎么改动呀
解决sqlite 删除记录后数据库文件大小不变
最的做的项目中要有到sqlite数据存储,写了测试程序进行测试,存入300万条记录,占用flash大小为 86.1M,当把表中的记录全部删除后发后数据库文件大小依然是 86.1M; 原因是: sqlite采用的是变长纪录存储,当你从Sqlite删除数据后,未使用的磁盘空间被添加到一个内在的”空闲列表”中用于存储你下次插入的数据,用于提 高效率,磁盘空间并没有丢失,但也不向操作系统返回磁盘空
压缩Sqlite数据文件大小,解决数据删除后占用空间不变的问题
最近有一网站使用Sqlite数据库作为数据临时性的缓存,对多片区进行划分Sqlite数据库文件,每天大概新增近1万的数据量,起初效率有明显的提高,但历经一个多月后数据库文件从几K也上升到了近160M,数据量也达到了40多万条,平均每一条数据占用了 4K的空间,虽然使用上的效率直观上没有造成太大的影响,但服务器的占用内存却比原来多占用了20%左右。今天刚好打算清除一个Sqlite的冗余数据,将保留最
线程资源释放 问题解决
一般来说,Posix的线程终止有两种情况:正常终止和非正常终止。线程主动调用pthread_exit()或者从线程函数中return都将使线程正常退出,这是可预见的退出方式;非正常终止是线程在其他线程的干预下,或者由于自身运行出错(比如访问非法地址)而退出,这种退出方式是不可预见的。不论是可预见的线程终止还是异常终止,都会存在资源释放的问题,在不考虑因运行出错而退出的前提下,如何保证线程终止时能顺利
处理Linux系统下已删除文件继续占用空间问题
在Linux中,当我们使用rm在linux上删除了大文件,但是如果有进程打开了这个大文件,却没有关闭这个文件的句柄,那么linux内核还是不会释放这个文件的磁盘空间,最后造成磁盘空间占用100%,整个系统无法正常运行。这种情况下,通过df和du命令查找的磁盘空间, 在Linux中,当我们使用rm在linux上删除了大文件,但是如果有进程打开了这个大文件,却没有关闭这个文件的句柄,那么linux内
pdo操作sqlite数据库
sqlite数据库介绍 一款轻量级关系数据库,不需要单独的进程启动或停止服务,很适合作为左面程序或者手机应用的内置数据库 sqlite数据类型有下面几种 NULL: 表示该值为NULL值 INTEGER: 无符号整型值,相当于mysql中的int相关的几种类型 REAL: 浮点值,相当于mysql中的float、double和decimal TEXT: 文本字符串,存储使用的编码方式为...
数据库操作、IO操作的资源没有及时释放
错误案例 public class ReleaseRes { public void releaseDB () { Connection conn = null; APLResultSet rs = null; St
解决Sqlite数据库,数据删除后占用空间不变的问题
sqlite数据库库文件在使用过后,随着数据的增多,文件大小也会随之变大。但是在把所有表中数据删除以后发现sqlite数据库文件大小没有变化,还是占用原来大小的空间。 造成这种情况的原因是:sqlite在之前使用的时候,随着数据的插入,会分配磁盘空间来供使用,在删除数据以后,未使用的磁盘空间会被添加到一个内在的“空闲列表”中用于存储下次插入的数据,磁盘空间不会随着数据的删除而释放给操作系统。
SQLite内存数据库使用有感
  SQLite不仅可以把数据库 放在硬盘上,还可以放在内存中(sqlite3_open(":memory:", &db)),经测试,同样条件下数据库放在内存中比放在硬盘上插入记录速度快差不多3倍。但数据库放在内存中时有如下缺陷:1、断电或程序崩溃后数据库就会消失,你需要定期Attach到硬盘上备份;2、在内存中的数据库不能被别的进程访问(因为没名字,以后可能支持),即使在多线程下,也得使
关于sqlite3使用操作中内存耗尽导致进程被kill的问题
最近由于项目的需要,在cortex-A8板子上开发一个关于分容柜控制的程序。需要用网络与上位机通讯。由于检测需要用到脱机工作。保存至少1440*150条数据,所以引进了sqlite数据库。移植了一个sqlite3动态库进行。发现程序跑到了两小时以上,外界的LCD操作会变得缓慢,网络上接收到的数据也是时有时无。然后一段时间发现程序崩溃了。信息显示的是程序过大,被杀死。这个问题也是找了挺久,一直以为是
SQLite操作公共类
SQLite操作公共类
Activity在onStop后到底处于什么状态
Activity在onStop后到底处于什么状态
C# 资源释放及dispose、close方法
需要明确一下C#程序(或者说.NET)中的资源。简单的说来,C#中的每一个类型都代表一种资源,而资源又分为两类: 托管资源:由CLR管理分配和释放的资源,即由CLR里new出来的对象; 非托管资源:不受CLR管理的对象,windows内核对象,如文件、数据库连接、套接字、COM对象等; 毫无例外地,如果我们的类型使用到了非托管资源,或者需要显式释放的托管资源,那么,就需要让类型继
java中手动释放资源的先后顺序
1、 流相关资源 流相关资源一般遵循: 1)先开后关,先开的输入流,再开的输出流,通过读取输入流写入输出流中,那么应该先关输出流,再关输入流,但是一般关闭输入输出流操作都是在读写完成后的finally中执行的,所以即使先关输入流,再关输出流也不会任何问题,因为读写操作没有进行了。 2)先关外层,再关内层。如BufferedInputStream包装了一个FileInputStream,那么先...
windows下python检查文件是否被其它文件打开.md
有时候我们需要能够判断一个文件是否正在被其它文件访问,几乎不可避免的要调用操作系统接口 from ctypes import cdll import os _sopen = cdll.msvcrt._sopen _close = cdll.msvcrt._close _SH_DENYRW = 0x10 def is_open(filename): if not os.access(fi...
使用JDBC后千万记得关闭并释放数据库连接资源
原文地址:http://www.wangzhongyuan.com/archives/231.html 在我10月30日的一篇文章《使用JDBC后记得关闭并释放数据库连接资源噢:)》中,提到JDBC中的Mysql数据库连接Connection和Statement、Resultset使用完毕之后一定要关闭,否则会占用大量内存资源,导致内存溢出。为了验证连接关闭是否确实能够释放资源,我做了一个小...
误删WAL日志后如何启动数据库
WAL日志是瀚高数据库至关重要的日志文件,数据恢复的重要依靠保障,如果误删了数据库会怎样呢? 模拟情况:   [highgo@sds1 data]$ pg_ctl start server starting [highgo@sds1 data]$ LOG: 00000: database system was shut down at 2018-11-14 23:31:31 CST LOG...
操作系统(进程篇)
一、填空 1.进程在执行过程中有三种基本状态,它们是 运行 态、 就绪 态和 阻塞 态。 2.系统中一个进程由 程序 、 数据集合 和 进程控制块(PCB) 三部分组成。 3.在多道程序设计系统中,进程是一个 动 态概念,程序是一个 静 态概念。 4.在一个单CPU系统中,若有5个用户进程。假设当前系统为用户态,则处于就绪状态的用户进程最多有 4 个,最少有 0 个。 注意,题目里给出的是假设当前...
数据库一直显示为正在还原(restoring)状态--处理
备份一数据库:完整备份、差异备份、事务日志备份--测试 进行还原时,提示还原成功,可是数据库一直显示为正在还原(restoring)状态。 可以从通过“select * from sysdatabases”查到数据库名,但是无法操作。  若确认还原完毕,可以用以下代码解决: restore database YourDB with recovery --切换至正常状态--RE
wait释放线程锁资源
package com.freeflying.thread.communication; /** * wait方法是否锁 * @ClassName: WaitReleaseLock * @Description: * @author freeflying * @date 2018年7月16日 */ public class WaitReleaseLock { public st...
解决sqlite删除数据后,文件大小不变问题(VACUUM)
删除表格的全部数据: DELETE FROM [*****]
关于sqlite3删除表内数据后,数据库大小仍然不 变的问题
最近由于项目的需要,用到了sqlite3数据库相关的操作。因为之前用的是QT中自带的,不是用C语言来操作,不过总的来说相差不大。之前是在 操作数据库过程中,会导致内存不断的增加。后来是发现操作的过程中很多内存没有释放。但是最近又有新的问题是,在我删除表中的数据后,发现数据库文件的大小仍然不变,而且下次打开数据库后,发现仍然占用着系统的内存。找了很多方法,终于让我找到了根本原因。原来是因为从Sqli
ORACLE数据库的三种状态:RESTRICT、QUIESCE和SUSPEND
<br />在Oracle中,有时候要执行一些管理性的操作,而这些操作运行的时候不能有其他用户同时访问数据库。对于这种情况可以设置系统进入RESTRICTED SESSION状态禁止普通用户登陆数据库。<br />数据库可以在启动的时候以RESTRICT方式来启动数据库:<br />SQL> conn / as sysdba已连接。<br />SQL> shutdown immediate数据库已经关闭。已经卸载数据库。<br />ORACLE 例程已经关闭。<br />SQL> startup restr
ASP使用SQlite遇到的部分问题
一、Unable to open the database file,一般有两个原因导致: 1.数据库所在目录要求权限比较高,需要修改文件目录权限(比如将其对Everyone开放所有权限,这种方法比较简单,但是安全性较低); 2.建立Sqlite链接,数据库文件目录有误,常见地址格式如下: DataBasePath=@&quot;Data Source=&quot; +HttpContext.Current.Serv...
sqlite3 判断数据库和表的状态
1、判断数据库是否存在,如果存在rc!=0 否则==0 ,同时数据库不存在的话也不会创建caen.db3,     此处与sqlite3_open不用!    =》rc = sqlite3_open_v2("caen.db3", &db, SQLITE_OPEN_READWRITE, NULL); 2、判断数据库中某个表的存在,如果sql执行成功zErrMsg=NULL,否则给出错误信息
SQL实战日记--数据库文件还原问题排查
前言 昨天群里有为同学,在测试文件组的备份还原时,遇到了一个问题。测试的脚本参考的是KK的博客 ,版本下,运行是正常的没有问题的。但是在SQL SERVER 2014版就提示上面的问题,查询处理器无法为表或视图“TAB”生成计划,因为该表驻留在不处于联机状态的文件组中。
C#“正由另一进程使用,因此该进程无法访问该文件”在复制删除SQLite数据库文件时出现
今天在做系统中数据库文件导入的时候,出现了“正由另一进程使用,因此该进程无法访问该文件”的错误。 我的操作是把目标文件复制到当前文件夹下,然后将记录系统设置的数据先从旧的文件中放到新的文件中,使用了SQLiteCommand的ExecuteNonQuery()方法进行更新。 System.IO.File.Copy(localFilePath, Path...
SQLite所遇到的坑
使用SQLite的时候总是要在创建数据库的时候卡上半天,而且每次都是,之前都是直接复制别人博客上的代码,然后稍微改几个名字,今天结合Google官方教程中的推荐方法创建成功数据库,现在记录一下。正确创建数据库与增删改查详细请看这篇文章的后半段这篇文章主要讲了如何正确创建数据库,如何正确的使用增删改查。 这里有几个注意点: 使用SQL语句创建表格的时候不要使用SQL语句的关键字作为自定义的名字,比如
Android SQLite数据库优化及注意事项
数据库使用优化及注意事项 数据库简介 后台数据库一般是MySQL 、Oracle 、SQL Server ,而Android 中的数据库是SQLite。今天要说的主要是SQLite在使用中的一些注意事项以及问题。 问题来源:公司有个项目,是用于石油炼化工厂巡检使用。就是录入所有巡检过程中的数据,上传至服务器,同时保存在本地。安卓中,本地数据库使用一般要么就是自己新建数据,继承Android自带的S...
Exchange OWA页面无法搜索的问题,解决方法
OWA登录用户邮箱,无法搜索。提示为“无法完成此操作,请重试”。 检查MailBox服务器中的MSExchangeSearch Indexer正常启动。 系统日志中有下列错误: 来源:ExchangeStoreDB 事件ID:222 在"2013/3/14 16:04:16",此服务器上的 Microsoft Exchange Information Store 数据库"1"副本遇到损坏
SQLite数据库对数据的基本操作(一)
1.新建MySQLiteOpenHelper 类,继承SQLiteOpenHelper /** * 创建类,继承SQLiteOpenHelper抽象类,重写方法 * */ public class MySqliteDataBase extends SQLiteOpenHelper { /** * Context context, * String name,数据库的名
SQL Server2005-数据库置灰(备用/只读)的解决方法
SQL Server2005-数据库置灰(备用/只读)的解决方法 现象,数据库文件为30多G,在属性--文件中查看,有多个的数据文件,日志文件显示不适用,数据库可以查看。 检查sa属性,用户映射处,该数据库没有打勾,且缺少db_owner权限。 解决方法一: 打开SqlServer 2005 ,在只读的数据库上右击选择属性,选中属性窗口左边选择页下面的选项,在窗口右边将
【UE4】UE4内使用Sqlite数据库
写在前面。 系统环境:Win10 X64 引擎版本为:UE4.17.2 编译器版本为: VS2015Pro 因为项目需要数据库对一些数据进行管理和其他的操作,所以花了些时间研究了一下如何在UE4中使用Sqlite数据库。 围观了许多Blog和Answer,要么语焉不详,或者是版本太古老。 另外再吐槽一下官方文档,说是将Sqlite已经集成到引擎里了,一没看到源码,二没找到文档,简直坑。
用VB.net操作SQLite数据库的完整工程代码
用VB.net操作SQLite数据库 还包括详细的图文教程的博客链接 如有需要可以下载 物超所值
解决sqlite删除数据后,文件大小不变问题
说了这么多,没进主题,我的主题是给Sqlite在删除数据后擦屁股。 大家或许发现了,当你在sqlite中删除了大量数据后,数据库文件的大小还是那样,没有变。 就用我的项目来说,3M的数据删除后,sqlite的.db文件依然是3M,而我要的结果实际上只有35K,在压缩一下也就10几K了。为什么会出现这个问题,SqlCe的.sdf文件是即删即减的。   原因是: 当你从S
Java释放资源
由于数据库链接非常的稀缺, 所以在不用链接的时候要将相应的资源给释放掉 所有资源都是基于 Connection对象去获得的. Connection conn= DriverManger.getConnection();Statement stmt =conn. createStatement()ResultSet rs =Stmt.executeQuery(); 一般关闭资源的代码是放在final
内存数据库性能评测之SQLite数据库
注册 我的搜狐邮件 欢迎入驻搜狐媒体平台 内存数据库性能评测之SQLite数据库 复制链接打印 2012年10月17日00:05 | 我来说两句(0人参与) | 保存到博客 IT168网   【IT168 专稿】SQLite是一款轻型的数据库,它占用资源非常的低
SQLite本地数据库的应用
说明 我们知道savedInstanceState、文件与SharedPreference都能够保存数据,但他们都无法满足应用持久化保存数据的需求,Android为此提供了长期存储地:即SQLite数据库。概述SQLite是一个轻量级的关系型数据库,运算速度快,占用资源少,很适合在移动设备上使用, 不仅支持标准SQL语法,还遵循ACID(数据库事务)原则,无需账号,使用起来非常方便!SQLite是
C#中如何使用SQLite数据库
1.首先需要一下两个文件 2.它的工具类如下  class SQLiteHelper     {         public static SQLiteConnection conn = null;         public static string tableName = "msg_record";         /**          * 获取
文章热词 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型 设计制作学习
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 java学习sqlite python操作数据库菜鸟教程