Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 数据库设计-存储日志,哪种数据类型?_Sql Server_Database_Database Design_Logging - Fatal编程技术网

Sql server 数据库设计-存储日志,哪种数据类型?

Sql server 数据库设计-存储日志,哪种数据类型?,sql-server,database,database-design,logging,Sql Server,Database,Database Design,Logging,我应该为API请求/响应存储哪些数据类型的日志 (我不知道将来要存储的字符串的长度)IMHO,NOSQL数据存储非常适合这种情况。如果您有不同的API调用,使用不同的参数,那么类似数据库的无模式特性将非常适合 关于在SQL Server中的存储,一种粗略的方法是使用NVARCHAR(MAX)只存储字符串(最大2GB)。这可以作为一个纯日志使用,但如果您希望轻松搜索该数据(出于监视/分析目的),则这并不理想。您可以使用XML并以更结构化的形式存储每个API调用的数据 e、 g 一些价值 然后可

我应该为API请求/响应存储哪些数据类型的日志


(我不知道将来要存储的字符串的长度)

IMHO,NOSQL数据存储非常适合这种情况。如果您有不同的API调用,使用不同的参数,那么类似数据库的无模式特性将非常适合

关于在SQL Server中的存储,一种粗略的方法是使用
NVARCHAR(MAX)
只存储字符串(最大2GB)。这可以作为一个纯日志使用,但如果您希望轻松搜索该数据(出于监视/分析目的),则这并不理想。您可以使用XML并以更结构化的形式存储每个API调用的数据

e、 g


一些价值
然后可以更轻松地对其进行索引和查询

有一个元素是“您想对日志数据做什么”。我假设,正如您从DB的角度所问的那样,这意味着您希望对该数据进行某种形式的分析/查询(否则您可以只登录到一个标准文件)


对我来说,底线是NOSQL,无模式数据库将是一个很好的选择,并且将是我的建议。

我们谈论的是哪一个数据库?SQL Server有一个很好的功能-它允许您定义
VARCHAR(max)
。您的问题与此相关。但是,如果您使用一些图形数据库,则此类数据的存储效率更高。我认为不应在日志的生产平台上进行日志数据的分析/查询,如果您要进行日志分析,则应在分析优化的服务器实例中进行一些ETL
<MyApiCall>
  <Param1>SomeValue</Param1>
</MyApiCall>