| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1281 人关注过本帖
标题:刚刚学SQL,有些问题!
只看楼主 加入收藏
qingquan31
Rank: 1
等 级:新手上路
威 望:2
帖 子:172
专家分:0
注 册:2007-6-19
收藏
 问题点数:0 回复次数:12 
刚刚学SQL,有些问题!
刚刚学SQL,有些不会用,希望大家不吝赐教!
我的SQL数据库中有一个大约250万的数据库,每次用起来都非常慢,而且内存占用非常大,查询一次大概需要5分钟左右,而且查询完了他也不自动释放内存,不知道有没有什么方法解决?
还有就是查询非常慢,有没有什么好方法,是不是建立一个索引能解决啊 ?该怎么建?是用命令还是在SQL数据库有一个设置可以建?
头晕阿!!!
搜索更多相关主题的帖子: SQL 
2007-10-29 13:50
Kendy123456
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:62
帖 子:2720
专家分:0
注 册:2007-1-3
收藏
得分:0 
基本上可以判断 是你的数据库服务器硬件太差。。。或者说 运行SQL的时候 系统资源已经几乎被吃干净了
效率再低 设计得再烂的数据库 也不至于跑一个简单查询5分钟

另外 我不知道什么叫查询完了没释放内存。。。 你想它怎么样个释放内存法呢?

最简单的办法 备份数据库 拿到一台干净的机器上去还原 看看这种情况是否还存在, 就知道是不是数据库本身设计有问题了

2007-10-29 14:21
purana
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:广东-广州
等 级:版主
威 望:66
帖 子:6039
专家分:0
注 册:2005-6-17
收藏
得分:0 
250万级的数据..查询5分钟..甚至10几分钟..应该都不是见奇怪的事..
你的数据库规范化是否合理..这也是很重要..
当然了..设置了索引.查询起来.当然会有一定的加速..不过换来的代价就是数据库容量加大..还有插入,删除,更新.速度会变慢.

我的msn: myfend@
2007-10-29 14:32
qingquan31
Rank: 1
等 级:新手上路
威 望:2
帖 子:172
专家分:0
注 册:2007-6-19
收藏
得分:0 
以下是引用Kendy123456在2007-10-29 14:21:42的发言:
基本上可以判断 是你的数据库服务器硬件太差。。。或者说 运行SQL的时候 系统资源已经几乎被吃干净了
效率再低 设计得再烂的数据库 也不至于跑一个简单查询5分钟

另外 我不知道什么叫查询完了没释放内存。。。 你想它怎么样个释放内存法呢?

最简单的办法 备份数据库 拿到一台干净的机器上去还原 看看这种情况是否还存在, 就知道是不是数据库本身设计有问题了

我的机器是64位双核,512内存,不知道跑一边5分钟正常不?
我说的内存没有释放 指的是没有运行数据库前内存占用100M左右,一运行猛增加到400多接近500,运行结束了,还是有400+的占用,几乎没有释放。运行其他的也变得非常卡?有没有什么办法解决?

[此贴子已经被作者于2007-10-29 15:49:15编辑过]


春风红照日,夏雨绿送归。 秋霜黄落叶,冬雪白花飞。
2007-10-29 15:41
qingquan31
Rank: 1
等 级:新手上路
威 望:2
帖 子:172
专家分:0
注 册:2007-6-19
收藏
得分:0 
以下是引用purana在2007-10-29 14:32:41的发言:
250万级的数据..查询5分钟..甚至10几分钟..应该都不是见奇怪的事..
你的数据库规范化是否合理..这也是很重要..
当然了..设置了索引.查询起来.当然会有一定的加速..不过换来的代价就是数据库容量加大..还有插入,删除,更新.速度会变慢.

我用的是VFP客户端通过局域网调用SQL,VFP里是调用最简单的SELECT语句,例如

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 "
select_return=SQLEXEC(lnhandle,select_sql,"select_cursor")

不知道还有没有什么优化的办法?
还有,我不太清楚SQL索引的方法,是不是管理平台索引和命令索引是同一个效果?上边语句应用索引查询用不用什么改变?

谢谢各位大侠指教了
对了,我的这个机器配置,一般都查询一次的时间在多少以内比较正常?


春风红照日,夏雨绿送归。 秋霜黄落叶,冬雪白花飞。
2007-10-29 15:47
bygg
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:乖乖的心中
等 级:版主
威 望:241
帖 子:13555
专家分:3076
注 册:2006-10-23
收藏
得分:0 

这个也难说啊,还得根据数据量大小来定呢.


飘过~~
2007-10-29 16:14
qingquan31
Rank: 1
等 级:新手上路
威 望:2
帖 子:172
专家分:0
注 册:2007-6-19
收藏
得分:0 
2332227 条记录
库结构是
图片附件: 游客没有浏览图片的权限,请 登录注册

不知道这样的库多长时间属于正常?现在太慢了,花了2个多月做出来的东西要使这个速度根本没法用!郁闷

春风红照日,夏雨绿送归。 秋霜黄落叶,冬雪白花飞。
2007-10-29 16:21
Kendy123456
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:62
帖 子:2720
专家分:0
注 册:2007-1-3
收藏
得分:0 

你在查询分析器下面做同样的查询也费这么长时间么?
也同样占用系统资源并且不会释放么?

因为你的是最简单的查询语句 所以不会是SQL在负载问题引起的资源竞争或者是数据库死锁。你开发的程序在不调用数据库的情况下 系统表现是否正常呢?


2007-10-29 17:36
qingquan31
Rank: 1
等 级:新手上路
威 望:2
帖 子:172
专家分:0
注 册:2007-6-19
收藏
得分:0 
以下是引用Kendy123456在2007-10-29 17:36:25的发言:

你在查询分析器下面做同样的查询也费这么长时间么?
也同样占用系统资源并且不会释放么?

因为你的是最简单的查询语句 所以不会是SQL在负载问题引起的资源竞争或者是数据库死锁。你开发的程序在不调用数据库的情况下 系统表现是否正常呢?

似乎有些眉目了!
我在查询分析器里边依然非常浪费时间,但内存应该能少占用20-40M左右。
作了些测试,当用精确查询“=辽宁省”是非常快,大概3-5秒,内存占用比较少,但用模糊查询"LIKE %辽宁省%"时,速度非常慢,5-7分钟,而且内存占用也非常大,不知道有没有发放解决?

还有,昨天对"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”?


春风红照日,夏雨绿送归。 秋霜黄落叶,冬雪白花飞。
2007-10-30 10:22
purana
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:广东-广州
等 级:版主
威 望:66
帖 子:6039
专家分:0
注 册:2005-6-17
收藏
得分:0 
虽然你的列是添加的索引.
不过从你这个查询来看..是不会利用索引的..

..可以考虑用用全文检索..

我的msn: myfend@
2007-10-30 10:29
快速回复:刚刚学SQL,有些问题!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017835 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved