什么是摹立场在std::iostream的gcount,tellg和seekg会员?而p的pcount,tellp和seekp?
为什么他们不被称为count,tell而且seek?
我有一个在 Azure 中运行的应用程序。它有一个部署为应用服务的 .NET 框架 API,连接到 Microsoft Sql Server。.NET 框架应用程序使用实体框架代码优先来访问数据库。
通常,应用程序运行顺利。然而,有时一个端点会变得无响应(即需要几分钟才能返回答案)。此端点通过 EntityFramework 执行查询,并仅从数据库中检索一些数据点。这是针对 2 到 8 个传感器执行的代码(没有任何区别):
List<Measurement> result = CreateContext().Measurements
.Where(m => m.MeasurementSeries.SensorInfoID == sensorId)
.Where(m => m.MeasurementSeries.StartTime <= toTime && m.MeasurementSeries.EndTime >= fromTime)
.Where(m => m.Time > fromTime && m.Time <= toTime)
.OrderByDescending(m => m.Time)
.ToList();
Run Code Online (Sandbox Code Playgroud)
通过查看指标(也来自 ApplicationInsight),我发现没有执行奇怪的查询。我看到了预期的查询,并且数据库计算利用率跃升至 100%。
相同的查询,从相同的代码执行,连接到相同的远程数据库,但使用本地运行的 .NET Framework 应用程序,从数据库中花费不到一秒和不到 1% 的计算。当查询(最终)完成时,数据库计算利用率回到零。API 计算利用率非常低,始终如此。直接对数据库执行相同的 SQL 查询所需的时间不到一秒钟。
所有其他端点,其中一些对数据库进行更重的查询,工作正常。
我尝试从多个来源多次重新运行相同的查询,重新启动、停止和启动,重新部署应用程序。没发生什么事。上次,半天后,它才刚刚开始工作。这次已经过去一天了,什么都没有。
您是否有任何指向何处查找问题的指示?如果我可以提供更多信息,请告诉我,因为我可能没有考虑过它们,它也可以帮助我找出问题所在。