刚刚学SQL,有些问题!
刚刚学SQL,有些不会用,希望大家不吝赐教!<BR>我的SQL数据库中有一个大约250万的数据库,每次用起来都非常慢,而且内存占用非常大,查询一次大概需要5分钟左右,而且查询完了他也不自动释放内存,不知道有没有什么方法解决?<BR>还有就是查询非常慢,有没有什么好方法,是不是建立一个索引能解决啊 ?该怎么建?是用命令还是在SQL数据库有一个设置可以建?<BR>头晕阿!!!<P>我的机器是64位双核,512内存,不知道跑一边5分钟正常不?<br>我说的内存没有释放 指的是没有运行数据库前内存占用100M左右,一运行猛增加到400多接近500,运行结束了,还是有400+的占用,几乎没有释放。运行其他的也变得非常卡?有没有什么办法解决?</P>
[align=right][color=#000066][此贴子已经被作者于2007-10-29 15:49:15编辑过][/color][/align]
<DIV class=quote><B>以下是引用<U>purana</U>在2007-10-29 14:32:41的发言:</B><BR>250万级的数据..查询5分钟..甚至10几分钟..应该都不是见奇怪的事..<BR>你的数据库规范化是否合理..这也是很重要..<BR>当然了..设置了索引.查询起来.当然会有一定的加速..不过换来的代价就是数据库容量加大..还有插入,删除,更新.速度会变慢.<BR></DIV>
<P>我用的是VFP客户端通过局域网调用SQL,VFP里是调用最简单的SELECT语句,例如<BR><BR>select_sql="select file_name as 文件名称, file_path as 文件路径, file_type as 文件类型, file_clime as 文件区域, file_trade as 文件行业, user_date as 文件日期 from ird_database where " <BR>select_return=SQLEXEC(lnhandle,select_sql,"select_cursor")<BR><BR>不知道还有没有什么优化的办法?<BR>还有,我不太清楚SQL索引的方法,是不是管理平台索引和命令索引是同一个效果?上边语句应用索引查询用不用什么改变?<BR><BR>谢谢各位大侠指教了<BR>对了,我的这个机器配置,一般都查询一次的时间在多少以内比较正常?</P> <P>这个也难说啊,还得根据数据量大小来定呢.</P> 2332227 条记录<BR>库结构是<BR>[attach]29661[/attach]<BR>不知道这样的库多长时间属于正常?现在太慢了,花了2个多月做出来的东西要使这个速度根本没法用!郁闷 <P>你在查询分析器下面做同样的查询也费这么长时间么?<BR>也同样占用系统资源并且不会释放么?<BR><BR>因为你的是最简单的查询语句 所以不会是SQL在负载问题引起的资源竞争或者是数据库死锁。你开发的程序在不调用数据库的情况下 系统表现是否正常呢?</P> <DIV class=quote><B>以下是引用<U>Kendy123456</U>在2007-10-29 17:36:25的发言:</B><BR>
<P>你在查询分析器下面做同样的查询也费这么长时间么?<BR>也同样占用系统资源并且不会释放么?<BR><BR>因为你的是最简单的查询语句 所以不会是SQL在负载问题引起的资源竞争或者是数据库死锁。你开发的程序在不调用数据库的情况下 系统表现是否正常呢?</P></DIV>
<P>似乎有些眉目了!<BR>我在查询分析器里边依然非常浪费时间,但内存应该能少占用20-40M左右。<BR>作了些测试,当用精确查询“=辽宁省”是非常快,大概3-5秒,内存占用比较少,但用模糊查询"LIKE %辽宁省%"时,速度非常慢,5-7分钟,而且内存占用也非常大,不知道有没有发放解决?<BR><BR>还有,昨天对"FILE_NAME"字段建立了个索引,索引名字IRD_INDEX,今天试验为什么不但没有快,反也还慢了 ,我没有用过,应用索引的语句还用不用改 ?比如 原来的是:"select file_name as 文件名称,file_path as 文件路径, file_type as 文件类型, file_clime as 文件区域 where file_name like '%辽宁省%' "用不用将file_name 替换成“IRD_INDEX”?</P> 虽然你的列是添加的索引.<BR>不过从你这个查询来看..是不会利用索引的..<BR><BR>..可以考虑用用全文检索.. <DIV class=quote><B>以下是引用<U>purana</U>在2007-10-30 10:29:10的发言:</B><BR>虽然你的列是添加的索引.<BR>不过从你这个查询来看..是不会利用索引的..<BR><BR>..可以考虑用用全文检索..</DIV>
<P>全文索引 ? 这个适用于我这个情况吗?基本上我只要搜索file_name一个字段就可以,做多不过3个字段的组合。<BR>全文索引怎么设置?也是在表上右击-〉所有任务-〉管理索引吗?没有看到有全文索引啊?<BR><BR>我用的查询语句对不对,那位大侠可以告诉以下,建立索引以后语句用不用改变?</P> <P>数据量大,如果只对这个表进行查询功能(比如常用file_name字段),可以在file_name字段上加一个聚集索引可以加快检索速度,<BR>查询语句是不用修改的。<BR></P> <P>建立索引要使查询的速度变快的话,是唯一索引.但是只对于查询会变快,所带来的其它方面的性能会有所减弱.<BR>建索引在企业管理器中与在查询分析器中是一样的效果的</P>
页:
[1]
