VC/MFC + Sql Server2000开发WinForm系统,使用ODBC连接数据库!数据库中有这样一张表A:(字段均为varchar类型,记录数量为300条左右)
ID      TheDate      Product    VesselName   Person   ……
AA001   2001-01-01   木材       XXXXXXX      张三     ……
AA002   2001-05-09   木材       YYYYYYY      张三     ……
BB001   2002-01-01   钢材       WWWWWWW      李四     ……
………………WinForm系统中使用“select * from A where Person = '"+变量+"'”语句来查询表A中的记录。问题如下:
    如果我在数据库中使用 update A set Person = '刘舞' where Person = '张三',来更新表A的内容后,那么在查询记录的时候,如果查询语句中的“变量”的值为'刘舞',那么检索是速度就会变的很慢,但是“变量”的值只要不是为'刘舞',那么查询速度就是正常的。我换了另外的几张表尝试了一下,也出现同样的问题,很奇怪啊!这个问题捆饶小弟好多天了,请各位大侠帮忙出出注意啊!学习,关注……

解决方案 »

  1.   

    你更新之后,把程序关闭,重新打开再运行试试速度是不是也正常
    如果正常的话,就是你的SQL在更新之后,没有及时写回到表中
      

  2.   

    lonely001(独行客) ,你说的程序是Winform系统还是Sql Server2000????我两个都试了一下,问题依然存在!!!请各位大侠再给点意见,谢谢!
      

  3.   

    楼主的说明:
    1、所有字段都没有创建索引2、总字段数量约40个,记录数量1万多。不过用update 更新的记录数量约300
      

  4.   

    如果我在数据库中使用 update A set Person = '刘舞' where Person = '张三',来更新表A的内容后,那么在查询记录的时候,如果查询语句中的“变量”的值为'刘舞',那么检索是速度就会变的很慢,但是“变量”的值只要不是为'刘舞',那么查询速度就是正常的。
    ------------------------------------------------update A set Person = '刘七' where Person = '张三'select * from A where Person = '刘七'你看看有没有这个问题然后关闭程序
    再运行,此时只运行select你看是否还有这样的问题
      

  5.   

    对ODBC不是很熟悉,你最好帖出代码看看