我需要优化由域实体上的保存(插入查询)产生的查询。我已经使用Fluent NHibernate配置了NHibernate。
这是NHibernate在插入用户对民意调查的响应期间生成的查询:
exec sp_executesql N'INSERT INTO dbo.Response (ModifiedDate, IpAddress, CountryCode,
IsRemoteAddr, PollId) VALUES (@p0, @p1, @p2, @p3, @p4); select SCOPE_IDENTITY()',N'@p0
datetime,@p1 nvarchar(4000),@p2 nvarchar(4000),@p3 bit,@p4 int',
@p0='2001-07-08 03:59:05',@p1=N'127.0.0.1',@p2=N'US',@p3=1,@p4=2
如果观察的输入参数 IpAddress
和 CountryCode
,将会注意到,NHibernate的使用
nvarchar(4000)
。问题是,nvarchar(4000)
远远大于我需要或者IpAddress
或CountryCode
并且由于高流量和托管的要求,我需要优化内存使用情况的数据库。
这是这些列的Fluent NHibernate自动映射替代:
mapping.Map(x => x.IpAddress).CustomSqlType("varchar(15)");
mapping.Map(x => x.CountryCode).CustomSqlType("varchar(6)");
这不是我看到不必要的nvarchar(4000)弹出的唯一地方。
如何控制 NHibernate nvarchar(4000)
对字符串表示的使用?
如何更改此insert
语句以使用适当大小的输入参数?
指定Type
为NHibernateUtil.AnsiString
用Length
而不是使用CustomSqlType。
问题内容: 当我尝试使用此查询时,我收到一条错误消息,指出Perameter电子邮件不存在,我确定变量:email,login_pass,payment_method,operateur是有效的并且存在。 我尝试删除引号,但我得到了 您的Sql语法有错误,请在第1行的’:email,:login_pass,:payment_method,:avecpuce)’附近查看与您的SQL Server对应
问题内容: 我没有看到与此主题相关的任何类似问题,因此我不得不针对当前正在研究的内容进行研究。我以为如果其他人有相同的问题,我会给出答案。 问题答案: 您只需将字符串连接起来,然后CHAR(13)在要换行的位置插入一个即可。 例子: 打印出以下内容: This is line 1. This is line 2.
是否可以使用通用sql将超过4000个字符的字符串插入CLOB 新增列: 我必须用SQL插入它 请指教。
首先为我的英语感到抱歉。 我试图插入大约15000行,问题是有一个CLOB类型的列可能有超过4000个字符,给出错误ORA-01704,我知道如何像这样一个接一个地插入:TO_CLOB(string)TO_CLOB(string)并且它工作,但是我有大约1000个这样的情况发生,我不想手动执行,你能想到什么方法来插入它们? 谢谢你。
如何向CLOB类型列插入超过4000个字符? 导致错误: ORA-01704:字符串太长。 当我阅读Oracle参考时,可以最大节省4GB(千兆字节)?
问题内容: 我正在使用 Ubuntu 9.04 我已经安装了以下软件包版本: 我已经这样配置: 我已经这样配置: 我已经从Pyodbc修订版中获取并使用“ ”进行了安装 我有一台装有 Microsoft SQL Server 2000 的Windows机器,安装在本地网络上,并在本地IP地址10.32.42.69上侦听。我有一个名为“ Common”的空数据库。我的用户“ sa”具有完全特权的密码