当前位置:Gxlcms > 数据库问题 > [转]Sql Server 主从数据库配置

[转]Sql Server 主从数据库配置

时间:2021-07-01 10:21:17 帮助过:10人阅读

//orderNo 的格式为 20100528120105000001 即yyyyMMddHHmmss + 序号

[csharp] view plaincopyprint?
  1. public OrderInfo GetOrder(string orderNo) {  
  2.   
  3. string connString = ConnStringGetter.GetForOrder(orderNo);  
  4.   
  5. using (SqlConnection conn = new SqlConnection(connString))  
  6.   
  7. {  
  8.   
  9. ...  
  10.   
  11. }  
  12.   
  13. }  
  14.   
  15. public class ConnStringGetter  
  16.   
  17. {  
  18.   
  19. public static string GetForOrder(string orderNo) {  
  20.   
  21. int year = int.Parse(orderNo.Substring(0,4));  
  22.   
  23. int money = int.Parse(orderNo.Substring(4,2));  
  24.   
  25. int date = int.Parse(orderNo.Substring(6,2));  
  26.   
  27. DateTime orderTime = new DateTime(year, money, date);  
  28.   
  29. TimeSpan ts = DateTime.Now - orderTime;  
  30.   
  31. //根据订单的时间决定使用主库还是从库  
  32.   
  33. if (ts.TotalDays > 30) return ConfigurationManager.ConnectionStrings["CONN_Slave"].ConnectionString;  
  34.   
  35. return ConfigurationManager.ConnectionStrings["CONN_Master"].ConnectionString;  
  36.   
  37. }  
  38.   
  39. }  
public OrderInfo GetOrder(string orderNo) {

string connString = ConnStringGetter.GetForOrder(orderNo);

using (SqlConnection conn = new SqlConnection(connString))

{

...

}

}

public class ConnStringGetter

{

public static string GetForOrder(string orderNo) {

int year = int.Parse(orderNo.Substring(0,4));

int money = int.Parse(orderNo.Substring(4,2));

int date = int.Parse(orderNo.Substring(6,2));

DateTime orderTime = new DateTime(year, money, date);

TimeSpan ts = DateTime.Now - orderTime;

//根据订单的时间决定使用主库还是从库

if (ts.TotalDays > 30) return ConfigurationManager.ConnectionStrings["CONN_Slave"].ConnectionString;

return ConfigurationManager.ConnectionStrings["CONN_Master"].ConnectionString;

}

}

正确的使用主从库,可以很好的提升系统的性能。使用主库还是从库的选择权决定在业务逻辑的手里。

[转]Sql Server 主从数据库配置

标签:

人气教程排行