English 中文(简体)
我如何缓解NHibernate 选择性询问?
原标题:How do I debug slow NHibernate Select query?

Im在数据库中进行简单查询,在两栏进行查询。 我有一栏索引。 当我对库克服务器管理演播室进行搜索时,只需要几毫秒才能完成(途径不到10)。 当我在NHibernate做同样的问询时,需要30秒钟。 我对询问作了总结,而制作的SQ是罚款。 使用NHibernate Profiler的Im,当我选择NHibernate Profiler的“show query results”时,取得结果的所需时间不到第二。 我从这里来的就是这样吗?

EDIT:因此,我决定利用会议这样做。 创建SQLQuery(SQL),它非常快。 为什么要比其他方法更快?

EDIT:使用查询参数似乎是问题。 我创建了一个没有参数的当地雇佣兵,是罚款。 一旦我增加点名,点击执行时间就会急剧上升。

TABLE SCHEMA:

CREATE TABLE [dbo].[CRDefendant](
[Id] [int] NOT NULL,
[FirstName] [varchar](30) NULL,
[LastName] [varchar](30) NULL,
[MiddleName] [varchar](30) NULL,
[Race] [char](1) NULL,
[Sex] [char](1) NULL,
[BirthDate] [char](10) NULL,
[Social] [int] NULL,
[BadData] [varchar](50) NULL,
 CONSTRAINT [PK__CRDefend__3214EC073B95D2F1] PRIMARY KEY CLUSTERED 
(
    [Id] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [GROUP3]
) ON [GROUP3]

GO

请求:

SELECT this_.Id as Id16_0_, this_.FirstName as FirstName16_0_, this_.LastName as LastName16_0_, this_.MiddleName as MiddleName16_0_, this_.Race as Race16_0_, this_.Sex as Sex16_0_, this_.BirthDate as BirthDate16_0_, this_.Social as Social16_0_, this_.BadData as BadData16_0_ FROM [CRDefendant] this_ WHERE this_.LastName = @p0 and this_.FirstName like @p1

INDEX:

CREATE INDEX IX_CRDefendant_Name_DOB
ON CRDefendant (LastName ASC, FirstName ASC, BirthDate ASC)
INCLUDE (MiddleName, Race, Sex, Social)
ON GROUP3
最佳回答

从一开始,就把简介员所显示的准确盘点和你在SSMS中提出的问题张贴在册。 没有任何罪行,但你认为的罚款可能会向受过训练的眼睛透露大量信息。 第二,将表格的准确图表,包括所有索引。

可能出现的问题的一个例子是:由于http://msdn.microsoft.com/en-us/library/ms190309.aspx” rel=“nofollow noreferer”>数据类型(查询以nvarchar为准)。 @variable on an varchar 指数将全面扫描。

关于更一般性的问题,how”是指一个问题,答案是:采用如下方法:? <http://msdn.microsoft.com/en-us/library/ms189741.aspx”rel=“nofollow noreferer”>sys.dm_exec_query_stats>,

问题回答

以及Remus(涉及由自由邦对(n)varchar的id性处理)的答复,我也把“BadData

你们如何以总部或标准框架来制造问询?

我的情况也一样。 追踪Nhibernate Profiler的King坑,是快速的,但 app的运行速度非常缓慢。 从标准框架转而到总部,这个问题已经确定。

我认为,标准框架有点/特点,在某些情况下使框架真正缓慢。





相关问题
Export tables from SQL Server to be imported to Oracle 10g

I m trying to export some tables from SQL Server 2005 and then create those tables and populate them in Oracle. I have about 10 tables, varying from 4 columns up to 25. I m not using any constraints/...

SQL server: Can NT accounts be mapped to SQL server accounts

In our database we have an SQL server account that has the correct roles to access some of the databases. We are now switching to windows authentication and I was wondering if we can create a NT user ...

SQL Server 2000, ADO 2.8, VB6

How to determine if a Transaction is active i.e. before issuing Begin Transaction I want to ensure that no previous transaction are open.. the platform is VB6, MS-SQL Server 2000 and ADO 2.8