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

數據庫中海量文件的批量轉移方法

數據庫 SQL Server
今天我們將談到的是在數據庫中海量文件的批量轉移,如果這樣的問題不解決會影響到相關文件的維護工作。

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

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

下面是關于文件遷移的主要代碼:

  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.          //目標文件夾   
  21.          string destFilePath = paperPath + publicExam.FInputTime.ToString("yyyyMM");   
  22.       if (Directory.Exists(destFilePath) == false)   
  23.            Directory.CreateDirectory(destFilePath);   
  24.       //目標文件名   
  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 關于File Class 和 Directory Class 的使用方法。

執行效果圖如下:

Tips:

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

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

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

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

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

【編輯推薦】

帶您了解Oracle文件系統機制

詳解MongoDB實現存儲物理文件和SQUID加速

對DB2外部文件格式的闡述

DB2外部文件格式淺析

Oracle數據庫文件管理經驗談

 

責任編輯:彭凡 來源: 博客園
相關推薦

2010-04-22 15:34:16

Oracle海量數據

2014-04-30 13:21:06

2014-11-05 16:49:20

初志科技

2011-08-25 16:13:31

SQL Server批量替換數據

2010-04-14 12:38:56

Oracle海量數據

2011-03-28 08:47:46

海量數據庫管理中韓數據庫專家

2011-05-12 09:19:36

海量數據庫管理

2010-04-19 10:50:01

Oracle轉移

2011-08-05 14:31:04

mysql_conve批量轉換MYSQL數據MYISAM

2011-09-01 10:10:56

OceanBase海量淘寶

2011-05-26 13:07:29

數據庫切換故障轉移

2011-06-03 09:22:04

OracleOracle應用服務器

2013-04-26 16:18:29

大數據全球技術峰會

2011-09-01 10:54:28

OceanBase數據庫海量

2011-03-28 17:07:14

海量數據庫

2019-11-22 08:05:01

數據庫mysql分區

2010-09-13 15:31:14

sql server數

2011-08-04 18:00:47

SQLite數據庫批量數據

2011-08-19 13:28:25

海量數據索引優化

2011-05-26 15:53:59

數據庫更新維護
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日本一区二区电影 | 免费一区 | 亚洲成人av在线播放 | 亚洲综合五月天婷婷 | 美日韩一区二区 | 亚洲成人午夜在线 | 国产精品久久99 | 中文字幕成人av | 福利视频网站 | 欧美视频精品 | 欧美一级特黄aaa大片在线观看 | 日本在线网址 | 91视频88av| 亚洲国产情侣 | 日本三级做a全过程在线观看 | 精品国产伦一区二区三区观看体验 | 亚洲一区二区三区在线 | 精品国产精品国产偷麻豆 | 国产欧美日韩精品一区 | 日日干夜夜操 | 99精品热视频 | 久久99精品久久久久久 | 国外成人在线视频网站 | 91亚洲国产亚洲国产 | 国产精品久久久久久久久久久久 | 久久久天堂 | 国内精品一区二区三区 | 在线播放一区二区三区 | 国产精品综合久久 | 日韩精品免费在线观看 | 午夜在线观看免费 | 黄色av网站在线观看 | a毛片| 国产高清免费视频 | 超级黄色一级片 | 久久精彩 | 婷婷精品| 美女久久久 | 国产精品久久久久久久午夜片 | 亚洲视频欧美视频 | 色资源站 |