Example #1
0
        private bool ReadTable(string schemaFile)
        {
            var stopWatch = new Stopwatch();

            stopWatch.Start();

            string currentTableName;
            long   rowCounter;

            try
            {
                var tableDefinition = GetTableDefinition(schemaFile);
                var raw16Columns    = _dbContext.DbType == DbTypeName.Oracle ? tableDefinition.GetRaw16Columns() : new List <string>();
                tableDefinition.Columns
                .FindAll(c => raw16Columns.Contains(c.Name))
                .ForEach(c => c.Details["Length"] = 17);

                _dbSchema.DropTable(tableDefinition.Name);
                _dbSchema.CreateTable(tableDefinition);

                ClusteredIndexOnAgrtid(tableDefinition);

                currentTableName = tableDefinition.Name;
                _logger.Write($"{currentTableName,30} Started...");
                var fileName = GetDataFileName(currentTableName);
                rowCounter = BulkLoadData(tableDefinition, fileName);
                WhenOracleAlterRawColumns(tableDefinition.Name, raw16Columns, 16);

                _dbSchema.CreateIndexes(tableDefinition.Indexes);
            }
            catch (Exception ex)
            {
                _logger.Write($"ERROR while reading table. Current schema file: {schemaFile}:");
                _logger.Write(ex);
                return(false);
            }

            stopWatch.Stop();
            var message = $"{currentTableName,30} {rowCounter,10} rows read. Time: {stopWatch.Elapsed}";

            _logger.Write(message);

            return(true);
        }
Example #2
0
        private void Test_CreateIndex()
        {
            _commands.ExecuteNonQuery(string.Format("create table {0} (id int, id2 int, id3 int)", _testTable));

            List <IIndexDefinition> indexes = new List <IIndexDefinition>
            {
                _msContext.PowerPlant.CreateIndexDefinition("i1_" + _testTable, _testTable, "", true)
            };

            indexes[0].Columns = new List <IIndexColumn> {
                IndexColumnFactory.CreateInstance("id")
            };
            indexes.Add(_msContext.PowerPlant.CreateIndexDefinition("i2_" + _testTable, _testTable, "", false));
            indexes[1].Columns = new List <IIndexColumn>
            {
                IndexColumnFactory.CreateInstance("id2"),
                IndexColumnFactory.CreateInstance("id3")
            };
            _dbSchema.CreateIndexes(indexes);

            CheckIndexes();
        }