c# - SQL VS 前端处理

标签 c# sql performance

最近我在做一个使用 JSON 的项目,我有两种方法从数据库中获取数据以方便我的 JavaScript 使用 Json 字符串,

首先

就是在数据库中做处理,形成一个Json字符串,像这样

select   
       ID,
    '{ "Comments": ['+
    Substring(
        (SELECT 
           ',{ '+
           '"Comment" : "' + REPLACE(Comments,'"','\"') + '",'+
           '"Name" : "' + REPLACE(Name,'"','\"') +
         '}'
    FROM    JsonTbl
    where   JsonTbl.ID = tbl.ID
    for xml path('')
    ),2,250000)
      +'] }' as JsonData
from tbl

第二

就是从数据库中选取数据,不做任何处理,在前端做创建Json字符串的处理,像这样

DataTable data = GetDataFromDatabase();
StringBuilder sb = new StringBuilder();
sb.Append("{ \"Comments\": [");
for (int i = 0; i < data.Rows.Count; i++)
{
    sb.Append("{");
    sb.Append("\"Comment\" : \"" + data.Rows[i]["Comment"].ToString().Replace('"', '\"') + "\",");
    sb.Append("\"Name\" : \"" + data.Rows[i]["Comment"].ToString().Replace('"', '\"') + "\"");
    sb.Append("},");
}
sb.Remove(sb.Length - 1, 1);

我想知道从性能和维护的角度来看哪个更好。

注意:请考虑我已经修剪了代码以在此处发布原始代码比这大得多,而且我使用的是 MSSQL 2008 和 .Net(C#)

最佳答案

更好的方法是通过 SQL Server 获取数据,在 C# 中基于该数据创建一个对象,然后对 JSON 使用 JSON 序列化程序。可能是JSON.Net .您可能会遇到使用当前方法维护代码的问题。

关于c# - SQL VS 前端处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11809073/

相关文章:

c# - 伊达 :Domain un-used setting?

sql - Rails 3 Sum 两个领域的产品

sql - 为什么本地 sqlite 数据库上的此查询需要 4 分钟才能执行?

C# Jquery 引用错误未定义

c# - 是否有可能 'relay' 一个套接字?

mysql - 如何使用 GROUP BY mysql 查询优化 COUNT?

php - 使用php删除表的特定行

linux - 使用 htaccess 文件会在多大程度上降低网站性能(尤其是固态硬盘)?

c++ - 为什么即使函数是内联的,这段代码也会变慢?

c# - 如何使用 Convert 将字符串转换为自定义对象