成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

數(shù)據(jù)庫中海量文件的批量轉(zhuǎn)移方法

數(shù)據(jù)庫 SQL Server
今天我們將談到的是在數(shù)據(jù)庫中海量文件的批量轉(zhuǎn)移,如果這樣的問題不解決會影響到相關(guān)文件的維護(hù)工作。

事情的經(jīng)過是這樣子的!數(shù)據(jù)庫A表添加一條記錄,**系統(tǒng)中B目錄下就會多出5n個文件。隨著系統(tǒng)運行3年多,B目錄中的文件數(shù)已高達(dá)2M多,而這些文件恰恰又是用戶高度頻繁訪問的。于是問題就來了,一方面是用戶訪問文件速度變慢了;另一方面是文件太多,很難維護(hù)。

怎么辦呢?思許良久,發(fā)現(xiàn)A表中有個錄入時間字段是不會變更的。如果截取錄入時間的年份+月份組成,用來創(chuàng)建B目錄下的子目錄名,把當(dāng)年當(dāng)月新增的文件統(tǒng)一歸檔于該子目錄下,不就可以嗎?新增的文件好處理,可對于舊文件歸檔需要費點周折,因為文件得遷移到新的子目錄里。

下面是關(guān)于文件遷移的主要代碼:

  1.  static void Main(string[] args)   
  2. {   
  3.    string paperPath = ConfigurationManager.AppSettings["PaperBuildPath"];   
  4.   Console.WriteLine(string.Format("試卷目錄:{0}", paperPath));   
  5.  Console.WriteLine();   
  6.   Console.WriteLine("目錄是否正確? 正確請按任意鍵......");   
  7.   Console.WriteLine();   
  8.  Console.ReadKey();   
  9.   string[] files = Directory.GetFiles(paperPath);   
  10.  int num = 0;   
  11.   PublicExam[] list = Gateway.Default.FindArray<PublicExam>();   
  12.  foreach (PublicExam publicExam in list)   
  13. {   
  14.   foreach (string file in files)   
  15.     {   
  16.       //源文件名(去除路徑后)   
  17.       string fileName = file.Split('\\').Last();   
  18.  if (fileName.StartsWith(publicExam.FGuid.ToString(), StringComparison.CurrentCultureIgnoreCase))   
  19.       {   
  20.          //目標(biāo)文件夾   
  21.          string destFilePath = paperPath + publicExam.FInputTime.ToString("yyyyMM");   
  22.       if (Directory.Exists(destFilePath) == false)   
  23.            Directory.CreateDirectory(destFilePath);   
  24.       //目標(biāo)文件名   
  25.        string destFileName = destFilePath + "\\" + fileName;   
  26.       if (File.Exists(destFileName))   
  27.           File.Delete(destFileName);   
  28.          Console.WriteLine(string.Format("正在遷移文件:{0}", fileName));   
  29.       //遷移文件   
  30.        File.Move(file, destFileName);   
  31.       num++;   
  32.        }   
  33.      }   
  34.     }   
  35.   Console.WriteLine();   
  36.  Console.WriteLine(string.Format("共遷移{0}個文件,請按任意鍵退出......", num));   
  37.    Console.ReadKey();   
  38.  }  

上面例子參考了MSDN 關(guān)于File Class 和 Directory Class 的使用方法。

執(zhí)行效果圖如下:

Tips:

目錄名(年份+月份) 如:201101

c#   => DateTime.Now.ToString("yyyyMM")

SQL => convert(varchar(6),getdate(),112)

當(dāng)然僅僅文件遷移是不夠的,還有很多工作要做,比如修改程序;更新數(shù)據(jù)庫表記錄等等。我知道,這次“手術(shù)”不符合開放-關(guān)閉原則。

原文鏈接:http://www.cnblogs.com/hailibu/archive/2011/01/05/1926361.html

【編輯推薦】

帶您了解Oracle文件系統(tǒng)機制

詳解MongoDB實現(xiàn)存儲物理文件和SQUID加速

對DB2外部文件格式的闡述

DB2外部文件格式淺析

Oracle數(shù)據(jù)庫文件管理經(jīng)驗談

 

責(zé)任編輯:彭凡 來源: 博客園
相關(guān)推薦

2010-04-22 15:34:16

Oracle海量數(shù)據(jù)

2014-04-30 13:21:06

2014-11-05 16:49:20

初志科技

2011-08-25 16:13:31

SQL Server批量替換數(shù)據(jù)

2010-04-14 12:38:56

Oracle海量數(shù)據(jù)

2011-03-28 08:47:46

海量數(shù)據(jù)庫管理中韓數(shù)據(jù)庫專家

2011-05-12 09:19:36

海量數(shù)據(jù)庫管理

2010-04-19 10:50:01

Oracle轉(zhuǎn)移

2011-08-05 14:31:04

mysql_conve批量轉(zhuǎn)換MYSQL數(shù)據(jù)MYISAM

2011-09-01 10:10:56

OceanBase海量淘寶

2011-05-26 13:07:29

數(shù)據(jù)庫切換故障轉(zhuǎn)移

2011-06-03 09:22:04

OracleOracle應(yīng)用服務(wù)器

2013-04-26 16:18:29

大數(shù)據(jù)全球技術(shù)峰會

2011-09-01 10:54:28

OceanBase數(shù)據(jù)庫海量

2011-03-28 17:07:14

海量數(shù)據(jù)庫

2019-11-22 08:05:01

數(shù)據(jù)庫mysql分區(qū)

2010-09-13 15:31:14

sql server數(shù)

2011-08-04 18:00:47

SQLite數(shù)據(jù)庫批量數(shù)據(jù)

2011-08-19 13:28:25

海量數(shù)據(jù)索引優(yōu)化

2011-05-26 15:53:59

數(shù)據(jù)庫更新維護(hù)
點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 成人免费网站视频 | 精品视频一区二区三区在线观看 | 在线一级片 | 国产精品一区二区三区在线 | 亚洲欧美一区二区三区1000 | 羞视频在线观看 | 狠狠色狠狠色综合系列 | 日韩成人国产 | 精品欧美一区二区三区久久久 | 久久激情五月丁香伊人 | m豆传媒在线链接观看 | 久久久999精品 | 一区二区三区国产精品 | 日韩久久综合 | 亚洲日日夜夜 | 美女黄网| 亚洲一区二区av | 欧美在线亚洲 | 求个av网址| 亚洲图片视频一区 | 欧美老少妇一级特黄一片 | 日本亚洲欧美 | 国精日本亚洲欧州国产中文久久 | 久久国产一区二区三区 | 97人人澡人人爽91综合色 | 中文字幕av一区 | 欧美精品国产精品 | 99热热99| 精品无码久久久久国产 | 91精品入口蜜桃 | 日韩在线小视频 | 国产精品一区二区久久 | 超碰3| 91精品国产欧美一区二区成人 | 亚洲国产精品99久久久久久久久 | 网站黄色在线免费观看 | 久久免费看 | 日韩免费电影 | 国产午夜精品一区二区三区四区 | 一区二区免费 | 国产91亚洲精品 |