public static long GetAllCount(SqlBaseItemXml basemodel, ref long sqlnum) { sqlnum = 0; long rownum = 0; List <TaskDataParam> taskdataparam = new List <TaskDataParam>(); var databaselist = DBConfig.GetDatabaseXmlConfig(basemodel).SqlDatabaseList.Where(m => m.IsUse == true).ToList(); foreach (var item in databaselist) { var servermodel = DBConfig.GetServerItemXmlConfig(basemodel, item.ServerNumber); if (servermodel != null) { TaskDataParam tempparam = new TaskDataParam(); tempparam.servername = servermodel.ServerName; tempparam.dbtype = servermodel.DBType; tempparam.connstr = GetConnStr(basemodel, servermodel, item); tempparam.sqlstr = "select sum(b.rows) as 记录条数 from sysobjects a,sysindexes b where a.id=b.id and a.xtype='u' and b.indid=1 "; taskdataparam.Add(tempparam); } } DBTask servicetask = new DBTask(); rownum = servicetask.SyncThreadPoolManagerSum(taskdataparam, 100, false); sqlnum = servicetask.runnumcurrent; return(rownum); }
public long GetCount(SqlBaseItemXml basemodel, ConditionFieldModel condition, ref long sqlnum) { sqlnum = 0; long rownum = 0; DataTable dt = new DataTable(); DBRule serverrule = new DBRule(); List <MatchServerList> serverlist = serverrule.GetMatchServer(basemodel, condition); if (serverlist != null && serverlist.Count > 0) { List <TaskDataParam> taskdataparam = new List <TaskDataParam>(); foreach (var item in serverlist) { var servermodel = DBConfig.GetServerItemXmlConfig(basemodel, item.ServerNumber); if (servermodel != null) { TaskDataParam tempparam = new TaskDataParam(); tempparam.servername = servermodel.ServerName; tempparam.dbtype = servermodel.DBType; tempparam.connstr = DBProxyAction.GetConnStr(basemodel, servermodel); tempparam.sqlstr = DBProxyAction.GetSqlCount(servermodel, item, condition); taskdataparam.Add(tempparam); } } DBTask servicetask = new DBTask(); Console.WriteLine("满足条件的数据库表:" + taskdataparam.Count); rownum = servicetask.SyncTaskManagerSum(taskdataparam, 50, false); sqlnum = servicetask.runnumcurrent; } return(rownum); }
private void SyncThreadPoolSum(object model) { TaskDataParam dataparam = model as TaskDataParam; long revalue = CommonHelper.ToLong(DBProxy.GetDBHelper(dataparam.dbtype).GetSingle(dataparam.connstr, dataparam.sqlstr)); Threadrunnum++; Console.WriteLine("线程执行" + Threadrunnum + ",总数:" + revalue + "," + dataparam.sqlstr); rowcount += revalue; }
public long SyncTaskSum(TaskDataParam model) { long revalue = CommonHelper.ToLong(DBProxy.GetDBHelper(model.dbtype).GetSingle(model.connstr, model.sqlstr)); if (revalue < 1) { ; } Threadrunnum++; Console.WriteLine("线程执行" + Threadrunnum + ",总数:" + revalue + ",服务器名:" + model.servername); return(revalue); }
public static long GetAllCount2(SqlBaseItemXml basemodel, ref long sqlnum) { sqlnum = 0; long rownum = 0; List <TaskDataParam> taskdataparam = new List <TaskDataParam>(); var serverlist = DBConfig.GetServerItemXmlConfigList(basemodel); foreach (var item in serverlist) { StringBuilder sqlstr = new System.Text.StringBuilder(); var databaselist = DBConfig.GetDatabaseItemXmlConfigList(basemodel, item.Number); foreach (var item2 in databaselist) { if (sqlstr.Length > 0) { sqlstr.Append(" union all "); } sqlstr.AppendFormat(" select sum(b.rows) as 记录条数 from {0}.sys.sysobjects a,{0}.sys.sysindexes b where a.id=b.id and a.xtype='u' and b.indid=1 ", item2.DatabaseName); } if (sqlstr.Length > 0) { TaskDataParam tempparam = new TaskDataParam(); tempparam.servername = item.ServerName; tempparam.dbtype = item.DBType; tempparam.connstr = GetConnStr(basemodel, item); tempparam.sqlstr = string.Format("select SUM([记录条数]) from ({0})t1", sqlstr.ToString()); taskdataparam.Add(tempparam); } sqlstr.Clear(); } DBTask servicetask = new DBTask(); rownum = servicetask.SyncTaskManagerSum(taskdataparam, 100, false); sqlnum = servicetask.runnumcurrent; return(rownum); }
public DataTable GetList(SqlBaseItemXml basemodel, ConditionFieldModel condition, ref long sqlnum) { sqlnum = 0; long getmaxnum = 500; long getrowcount = 0; DataTable dt = new DataTable(); DBRule serverrule = new DBRule(); List <MatchServerList> serverlist = serverrule.GetMatchServer(basemodel, condition); if (serverlist != null && serverlist.Count > 0) { List <TaskDataParam> taskdataparam = new List <TaskDataParam>(); foreach (var item in serverlist) { var servermodel = DBConfig.GetServerItemXmlConfig(basemodel, item.ServerNumber); if (servermodel != null) { TaskDataParam tempparam = new TaskDataParam(); tempparam.servername = servermodel.ServerName; tempparam.dbtype = servermodel.DBType; tempparam.connstr = DBProxyAction.GetConnStr(basemodel, servermodel); tempparam.sqlstr = DBProxyAction.GetSqlList(servermodel, item, condition, getmaxnum); taskdataparam.Add(tempparam); } } Console.WriteLine("满足条件的数据库表:" + taskdataparam.Count); foreach (var itemparam in taskdataparam) { Console.WriteLine("访问服务器:" + itemparam.servername); var dttemp = DBProxy.GetDBHelper(itemparam.dbtype).GetDataDable(itemparam.connstr, itemparam.sqlstr); sqlnum++; if (dttemp != null && dttemp.Rows.Count > 0) { var dttempcount = dttemp.Rows.Count; if (getrowcount > 0) { foreach (DataRow dtrow in dttemp.Rows) { if (getrowcount >= getmaxnum) { return(dt); } getrowcount++; DataRow r = dt.NewRow(); r.ItemArray = dtrow.ItemArray; dt.Rows.Add(r); } } else { getrowcount = dttemp.Rows.Count; dt = dttemp; } } if (getrowcount >= getmaxnum) { return(dt); } } } return(dt); }