数据量不是很大,查找定位不是很复杂的时候,也没有复杂的查询和统计功能的时候,就建议不用数据库了。
你的数据文件的格式是不是可以优化一下。
还有可以一次读多点的数据到内存中,然后处理啊!
我看过一本Oracle的书,讲过一点数据读取优化的东西,好像可以参考一下。
但是忘了书名了。
你的数据文件的格式是不是可以优化一下。
还有可以一次读多点的数据到内存中,然后处理啊!
我看过一本Oracle的书,讲过一点数据读取优化的东西,好像可以参考一下。
但是忘了书名了。
在索引文件中指明各个数据存储的简短信息,如类型号,ID号等.然后就可以在相应的文件中计算偏移量,直接读取相应的数据信息,这样的结构在读取几个字节时,效率会非常的高
读连续数据时,效率也不会输给原来的数据组织方式。
iStorage,IStream
实际上数据量还是很大的,有时几个G。
如何一次读多点的数据?//bow
我的数据就是在一个文件中的。
To ahphone(阿丰)
实际上,我的数据只有一个类型:点。
但很有规律,实际上我的数据是一个三维体中每个单位立方体的数据,这个三维体由多个面组
成,而每个面由多条线组成,最后一条线由多个点组成。如果将每个面的数据放到不同的文件中再
建立索引会不会提高速度?可对点有什么索引可建?
数据库的作用是用来对很多条相似性的数据组织的,便于查询和定位。还有,如果使用SQL Server,用户的软件成本会提高很多,而且使用也不方便啊!你的数据文件是单个大,还是数量多啊?
比如mysql, postgresql等等
它们都同时支持unix,windows
反正现在内存夜便宜
所谓文件映射不是把文件全读进来,而是由操作系统来帮你做缓冲,和换页算法。这东西很适合随机读大文件。优点如下:
1方便,不需复杂编程
2可以利用空闲的内存,内存不必非常大,但加一点就好一点。
3有顺序地址的访问,你可以在原有的文件外部建立索引,或什么东西来加速读取此外,我想从数据本身的特性来入手是最有效的。编码如下:
HANDLE m_File = ::(strPathname,GENERIC_READ,FILE_SHARE_READ,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL)
HANDLE m_FileMap = ::CreateFileMapping(
(void*)0xFFFFFFFF,
NULL,
PAGE_READ,
0,1024,
NULL
);
ASSERT(m_FileMap != NULL);
if(GetLastError() == ERROR_ALREADY_EXISTS){
TRACE("the share memory has already existed!\n");
}
else{
TRACE("Create share memory\n");
}
void* m_pMapMem = (char*)::MapViewOfFile(this->m_FileMap,FILE_MAP_READ,0,0,0);
ASSERT(m_pMapMem != NULL);
//..............use it......................//
UnmapViewOfFile(m_pMapMem);
CloseHandle(m_File);
CloseHandle(m_FILEMap);
要我交任务,问题贴出来已经两个星期了,就是找不到答案,
所以真是sorry了,在这占用你们的空间,希望能给小弟一个答复!先谢谢了!!我以CEditView为基类建了一个MDI(其他什么代码我也没写),
有如下要求:我打开一个*.asm文档,想在光标所在行设一个断点,
要达到如在bc设断点的效果,在VC怎么做?能详细点回答吗?
有例子给我就感激不尽了!!
或转到http://www.csdn.net/expert/topic/171/171611.shtm本人邮箱:[email protected]
保存时可在CDocument::Serialize()中直接对CList调用序列化函数。对文件时再恢复成指针连表CList使用。速度不慢。不过你必须为你的C3dPoint,CLine,CCircle等基本图形类添加Serialize()函数,而且必须由CObject派生,这样调用CList:Serialize时MFC会自动去调用这些基本图形类的Serialize().