Пример #1
0
        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);
        }
Пример #2
0
        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);
        }
Пример #3
0
        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;
        }
Пример #4
0
        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);
        }
Пример #5
0
        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);
        }
Пример #6
0
        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);
        }