如何提高获取数据的速度?

仙侣步惊云 2007-01-16 08:51:03
数据库服务器的某个表中有一个image类型的二进制字段,存贮着word/excel文本,客户端需要从该表中获得每条记录,然后按给定的搜索字符串在image字段中逐条搜索该字符。
现在采用ADOQuery获取数据,但数据量大时,必须等待很长的一段时间(1000条记录约16秒)数据才能到达客户端,设置CacheSize为30,稍有好转,有什么好办法吗?
最理想的办法是这种检索能够在数据库服务器上完成就好了。
...全文
226 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
仙侣步惊云 2007-01-17
  • 打赏
  • 举报
回复
谢谢,我对sqlserver不懂,用的是sybase数据库.
现在我将adoquery的CursorLocation:=clUseServer。
47522341 2007-01-17
  • 打赏
  • 举报
回复
create table dali (id int not null primary key,
myimage image, filetype varchar(255), filename varchar(255))

sp_fulltext_database 'enable'
sp_fulltext_catalog 'my_fulldir','create'

declare @key sysname
select @key=c.name from syscolumns a, sysconstraints b, sysobjects c
where a.id=object_id(N'dali') and a.name='id' and a.id=b.id and b.constid = c.id and c.name like 'PK%'

print @Key

exec sp_fulltext_table 'dali','create','my_fullDir',@key

exec sp_fulltext_column 'dali','myimage','add',0x0804,'FileType'

--------
delete from dali

--插入空数据记录到全文索引表中
insert dali values(4,0x,'doc','050407.htm')
--将文献内容导入数据库中对应字段,当然你也可以采用其他方式在前端应用程序中执行插入操作
exec master..xp_cmdshell 'textcopy /S bn035 /U sa /P /D neusts /T dali /C myimage /W"where id=4" /F E:\050407.doc /I'

exec sp_fulltext_table 'dali','start_full' --执行全部填充

select fulltextcatalogproperty('my_fulldir','populatestatus') --查看填充结果

select length = datalength(myimage),FileName from dali


select * from dali where contains(myimage,'*存储*')
47522341 2007-01-17
  • 打赏
  • 举报
回复
利用数据库的全文检索功能;
1,在image上设置全文索引;
2,使用contains,freetext进行检索;

2,498

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧