Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/23.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
C# 建议何时在NHibernate中使用二级缓存_C#_.net_Performance_Nhibernate - Fatal编程技术网

C# 建议何时在NHibernate中使用二级缓存

C# 建议何时在NHibernate中使用二级缓存,c#,.net,performance,nhibernate,C#,.net,Performance,Nhibernate,我阅读了问题答案,解释了在50000行上使用二级缓存的效率不高。 那么,NHibernate第二次缓存的数据量在哪些方面是有帮助的,而在哪些方面是没有帮助的,甚至会破坏性能 例如:如果我有3500名员工(我仍然没有…),使用二级缓存是否是一件好事?您应该主要将其用于“静态”数据。例如,一个通过购物网站销售机票的网站。购物袋、订单和订单行是不稳定的数据。这些不是缓存的 但是像机场这样的位置数据、航空公司数据以及所有不同语言的连接名称都是“静态的”。这些可以缓存很长时间,并且不会在每次应用程序需要时

我阅读了问题答案,解释了在50000行上使用二级缓存的效率不高。
那么,NHibernate第二次缓存的数据量在哪些方面是有帮助的,而在哪些方面是没有帮助的,甚至会破坏性能


例如:如果我有3500名员工(我仍然没有…),使用二级缓存是否是一件好事?

您应该主要将其用于“静态”数据。例如,一个通过购物网站销售机票的网站。购物袋、订单和订单行是不稳定的数据。这些不是缓存的

但是像机场这样的位置数据、航空公司数据以及所有不同语言的连接名称都是“静态的”。这些可以缓存很长时间,并且不会在每次应用程序需要时导致数据库往返

因此,区分静态数据和易失性数据


究竟要缓存什么、不缓存什么以及缓存多长时间;当然,始终取决于应用程序的使用情况。在需要时使用不同的缓存区域和不同的过期时间。

您应该主要将其用于“静态”数据。例如,一个通过购物网站销售机票的网站。购物袋、订单和订单行是不稳定的数据。这些不是缓存的

但是像机场这样的位置数据、航空公司数据以及所有不同语言的连接名称都是“静态的”。这些可以缓存很长时间,并且不会在每次应用程序需要时导致数据库往返

因此,区分静态数据和易失性数据


究竟要缓存什么、不缓存什么以及缓存多长时间;当然,始终取决于应用程序的使用情况。在需要时使用不同的缓存区域,并使用不同的过期时间。

不幸的是,这类问题的答案并不简单

当数据读得比写得多时,缓存几乎总是会提高性能,但要想知道它在特定情况下是否有用,唯一的方法是分析


而且,这从来不是一个全有或全无的命题。您可能会从缓存某些实体和查询中获益。不同的生命周期、用法等。

不幸的是,这类问题的答案并不简单

当数据读得比写得多时,缓存几乎总是会提高性能,但要想知道它在特定情况下是否有用,唯一的方法是分析


而且,这从来不是一个全有或全无的命题。您可能会从缓存某些实体和查询中获益。使用不同的生命周期、用法等。

如何使用fluent NH设置缓存过期?与xml映射相同;您可以在app.config或web config中定义缓存区域及其experation,并在fluent映射中使用缓存区域。如何使用fluent NH设置缓存过期?与xml映射相同;在app.config或web config中定义缓存区域及其经验,并在fluent映射中使用缓存区域。