我做了个QQ群数据库泄漏信息查询,但是代码效率很低,很耗资源,贴出源码请大神改进!

xjw163 2013-11-25 12:40:58

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data.SqlClient;
using System.Data;

public partial class QQquery : System.Web.UI.Page
{
DataSet finaldata = new DataSet();
protected void Page_Load(object sender, EventArgs e)
{
Label1.Text = "over";
}
//数据集转字符串数组,用于遍历
public string[] ds2string(DataSet _ds)
{
int n = _ds.Tables[0].Rows.Count;
string[] s = new string[n];
for (int i = 0; i < n; i++)
{
s[i] = _ds.Tables[0].Rows[i][0].ToString();
}
return s;
}

//获取所有数据库的名字
public DataSet getAllDataBase()
{
SqlConnection coon = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["connectionString"].ConnectionString);
string sqlstr = "select name from sys.databases where name like 'GroupData%'";
SqlDataAdapter da = new SqlDataAdapter(sqlstr, coon);
DataSet ds = new DataSet();
da.Fill(ds);
return ds;
}

//获取数据库下的所有表
public DataSet getTable(string _DataBaseName)
{
SqlConnection coon = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["connectionString"].ConnectionString);
string sqlstr = "SELECT name FROM " + _DataBaseName + "..SysObjects Where XType='U' and name!='dtproperties'";
SqlDataAdapter da = new SqlDataAdapter(sqlstr, coon);
DataSet ds = new DataSet();
da.Fill(ds);
return ds;
}

//获取数据库中表的数据
public DataSet QueryData(string _DataBaseName, string _TableName, string _QueryNum)
{
SqlConnection coon = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["connectionString"].ConnectionString);
string sqlstr = "select * from " + _DataBaseName + ".." + _TableName + " where QQNum ='" + _QueryNum + "'";
SqlDataAdapter da = new SqlDataAdapter(sqlstr, coon);
DataSet ds = new DataSet();
da.Fill(ds);
return ds;
}

//查询按钮
protected void Button_query_Click1(object sender, EventArgs e)
{
//输入要查询的qq号码
string qq = TextBox_QQ.Text;
//遍历数据库
foreach (string database in ds2string(getAllDataBase()))
{
//遍历数据库中的表
foreach (string table in ds2string(getTable(database)))
{
//查询数据,结果添加到数据集finaldata中
finaldata.Merge(QueryData(database, table, qq));
}
}
//查询完毕,绑定数据
GridView1.DataSource = finaldata;
GridView1.DataBind();
}
}


若干个MDF文件附加的数据库:


数据库中的表:


表的结构


现在的问题是,数据量太大,在我的2G内存的机器上,一查询就卡死,然后就超时了


我只能一个表一个表的去查,这样的话不会卡死


这次泄漏的数据库一共大概90G

作为一个新手纯属技术研究,望高手指点如何提高效率
...全文
37823 129 打赏 收藏 转发到动态 举报
写回复
用AI写文章
129 条回复
切换为时间正序
请发表友善的回复…
发表回复
洛阳纸迷 2016-07-21
  • 打赏
  • 举报
回复
hoseahsu@gmail.com 拜托楼主分享一个链接
qq_15274689 2016-04-18
  • 打赏
  • 举报
回复
楼主 能发一份QQ群数据吗 仅做学术研究
song_ge6666 2016-01-12
  • 打赏
  • 举报
回复
求数据库。分享一下 谢谢
c401651191 2015-10-25
  • 打赏
  • 举报
回复
这是数据库文件链接: http://pan.baidu.com/s/1mgMXgnA 密码: 74zm,24.5G左右,解压为100G左右,解压密码请到乌云漏洞页面评论区查找。正在研习中,感谢搂主和@nvip 的贡献。
小菜菜-K 2015-08-24
  • 打赏
  • 举报
回复
貌似之前的地址都没法用了呢... 哪位有资源重新发一个啊~~
15928529863 2015-07-03
  • 打赏
  • 举报
回复
错了错了2051145615@qq.com
15928529863 2015-07-03
  • 打赏
  • 举报
回复
问一问还可以要数据库么,谢谢啦!!2051145616@qq.com求楼主呀!!
cyc138142 2015-03-24
  • 打赏
  • 举报
回复
引用 49 楼 easy66 的回复:
链接: http://pan.baidu.com/s/17qOjo 密码: k3s8
谁可以重新分享一个吗?这个不能用了。304754005@qq.com
cgongxi 2015-03-08
  • 打赏
  • 举报
回复
很想了解了解这个数据库,还请楼主给个数据库下载地址xiaoxito@163.com,感激!
asdffdgfhjgkhljl 2015-01-30
  • 打赏
  • 举报
回复
楼主还在吗?如果把每一个QQ号码和群号码都做成一个html页面,一共大概7000万个网页文件,页面包含的就是QQ号/群号的信息,其中QQ号.html显示出加的群号,且设为超链接跳转到群号信息这个HTML页面,这样查询会不会很快呢?
jiaxin1029 2015-01-09
  • 打赏
  • 举报
回复
好多资源失效了,楼主可以再共享一下不
邮箱jiaxin1029@163.com
浮生旧梦 2014-12-17
  • 打赏
  • 举报
回复
可以把数据库发一份给我吗?
huangjiweisky 2014-11-24
  • 打赏
  • 举报
回复
517282405@qq.com,求数据库,最近在需要大数据练手,非常感谢!!!
aimu2000 2014-10-04
  • 打赏
  • 举报
回复
批量索引的SQL查询器直接执行代码怎么写?
AmbulanceTeamOnWay 2014-09-06
  • 打赏
  • 举报
回复
新手最近在学习数据库…>_<…求数据 邮箱:395622914@qq.com
AmbulanceTeamOnWay 2014-09-06
  • 打赏
  • 举报
回复
求数据
guiguzi1110 2014-02-12
  • 打赏
  • 举报
回复
2257985686@qq.com , 暂时还没下载,希望楼主发一份下载链接到邮箱,谢谢~
kyou5478 2014-02-10
  • 打赏
  • 举报
回复
大神 为何会出现这个,我用的是SQL2005 消息 139,级别 15,状态 1,第 0 行 不能向局部变量赋予默认值。 消息 139,级别 15,状态 1,第 0 行 不能向局部变量赋予默认值。 消息 137,级别 15,状态 2,第 36 行 必须声明标量变量 "@dbIdx"。 消息 139,级别 15,状态 1,第 0 行 不能向局部变量赋予默认值。 消息 137,级别 15,状态 2,第 41 行 必须声明标量变量 "@tblIdx"。 消息 137,级别 15,状态 2,第 43 行 必须声明标量变量 "@dbIdx"。 消息 102,级别 15,状态 1,第 47 行 '+' 附近有语法错误。 消息 102,级别 15,状态 1,第 53 行 '+' 附近有语法错误。 消息 102,级别 15,状态 1,第 56 行 '+' 附近有语法错误。 消息 102,级别 15,状态 1,第 71 行 '+' 附近有语法错误。
引用 109 楼 vbvcde 的回复:
索引 索引 索引 索引 索引 索引 索引 索引 索引 索引 索引 索引 索引 索引 索引 索引 索引 索引 索引 索引 索引 索引 索引 索引 索引 索引 索引 索引
nvip 2013-12-20
  • 打赏
  • 举报
回复
索引 索引 索引 索引 索引 索引 索引 索引 索引 索引 索引 索引 索引 索引 索引 索引 索引 索引 索引 索引 索引 索引 索引 索引 索引 索引 索引 索引
iamxiaotian 2013-12-19
  • 打赏
  • 举报
回复
引用 46 楼 easy66 的回复:
我写了几十行sql,没用程序,直接贴进去按F5执行,11-15秒就可以查出来某个QQ号加的所有群
VirtualBox WindowsXP 配置的MSSQL2000,查询速度特别慢,怎么解决?
加载更多回复(105)

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧