Sybase IQ 结果集中的最佳更新
我希望重写更新 Sybase IQ 数据库 v14 上的表的代码,该代码执行以下操作:
- 选择表中的所有记录并将一些数据提取到文件
- 更新表中每条记录的提取到文件标志
当前,一旦一条记录写入文件后,其提取标志将被更新。 当前表中有 40 000 条记录,该进程使用 40GB 的数据库临时空间。 该表中的每条记录包含 60 个字段,最多列包含 120 个字符。
数据库服务器是否会为表中的每条记录创建新版本的数据,并且随着时间的推移,我们会在数据库服务器上创建一个临时数据滚雪球,其中包含已使用的 40GB 空间? 处理数据的最佳方法是首先提取数据,将其写入文件,然后执行批量更新。 因为据我了解,Sybase IQ 通常用于竞技场,所以我认为数据库会针对插入、删除和选择进行优化,但在更新时表现不佳? sybase 数据库 IQ 服务器在 HP-UX 和 Windows Server 2003 上执行相同的操作吗?
Im looking to rewrite code that update a table on a Sybase IQ database v14 that does the following:
- selects all the records in the table and extracts some data to file
- updates the extracted to file flag for each record in the table
Currently, once a record is written to file, its extraction flag is updated. Currently there are 40 000 records in the table and the process uses 40GB of database temp space. Each record in the table in question contains 60 fields and at most columns contains 120 characters.
Is the database server creating a new version of data for the table for each record in the table and as time goes, and so we create a snowball of temp data on the database server with accounts for the 40GB used? Would the best method to process the data to first extract the data, write it to file, then perform a bulk update. Since it is my understanding that Sybase IQ is generally used in arena im thinking the database would be optimised for inserts and deletes and selects but performs badly on updates ? Would the sybase database IQ server perform the same on HP-UX and Windows server 2003.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
实际上,Sybase IQ 针对读取进行了优化(例如 OLAP),而针对 OLTP 活动则没有那么多优化
在我自己的测试中,我发现将数据导入 Sybase IQ 花费的时间最长。
加载数据最快的方法是使用 LOAD TABLE 批量加载命令
Actually Sybase IQ is optimized for reads (think OLAP) and not so much for OLTP activity
During my own testing I found getting the data into Sybase IQ took the longest
The fastest way to load data would be to use the LOAD TABLE bulk load command