注册 登录
编程论坛 C# 论坛

谁能帮我指导一下操作数据库,来建立索引

l1007974920 发布于 2015-05-12 23:18, 524 次点击
题目要求如:给定一个序列,这个系列只含有4个字母ABCD,如 S =“ACABDDACABD”。给定一个整数值k,从S的第一个位置开始,取一连续k个字母的短串,如k= 5,则此短串为ACABD, 然后从S的第二个位置, 取另一字符串则此短串为CABDD,这样直至S的末端,就得一个集合,包含全部k长度的字符串。 如对序列S来说,所有长度为5的字符串为
{ACABD,CABDD,ABDDA,BDDAC,DDACA,DACAB,ACABD}
需一种数据索引方法,可被后面的操作快速访问。例如,对k=5来说,当查询ACABD,通过这种数据索引方法,可返回其在序列S中的位置为{1,7}。
现在以文件形式给定 100万个 序列,序列编号为1-1000000,每个序列有100个字符 。要求对给定k, 实现一种数据索引方法,可返回任意一个k长度的字符串所在的 序列编号和相应序列中出现的位置。(每次建立索引,只需支持一个k值即可,不需要支持全部k值)
  我做了分割字符串的操作,但是
2 回复
#2
l10079749202015-05-12 23:19
我做了分割字符串的操作,但是在操作数据库,将数据插入表建立索引上,试了好多次还是不会,另外,我这么建立索引效率实在是不高,有什么好想法吗?求指导,最好有个直观的程序。
#3
wangnannan2015-05-14 11:33
K值是可变的 我个人觉得吧单纯分割字符串的操作 起不到多大作用 但可以结合起来用 我说下我的思路
 可以使用存诸过程+临时表的方式 存储过程专门负责检索到的数据分割操作 这块 算法你可以自己优化 自不必说
另外你说的插入 我觉得SqlBulkCopy NET有相关的支持.比一行行插入速度提高1K倍以上 这种结合效率会高一些
1