我的公司正在迁移到SQL Server 2008 R2.我们有一张包含大量存档数据的表格.使用此表的大多数查询在where语句中使用DateTime值.例如:
查询1
SELECT COUNT(*)
FROM TableA
WHERE
CreatedDate > '1/5/2010'
and CreatedDate < '6/20/2010'
Run Code Online (Sandbox Code Playgroud)
我假设分区是在CreatedDate上创建的,每个分区分布在多个驱动器上,我们有8个CPU,数据库中有5亿条记录,均匀分布在1/1/2008的日期到2011年2月24日(38个分区).这些数据也可以分为一年或其他持续时间,但让假设保持数月.
在这种情况下,我相信将使用8个CPU,并且在2010年1月5日和2010年6月20日之间的日期仅查询6个分区.
如果我运行以下查询并且我的假设与上面相同,那该怎么办呢?
查询2
SELECT COUNT(*)
FROM TableA
WHERE State = 'Colorado'
Run Code Online (Sandbox Code Playgroud)
有问题吗?
1.是否会查询所有分区?是
2.是否所有8个CPU都用于执行查询?是
3.性能是否优于查询未分区的表?是
4.还有什么我想念的吗?
5.分区索引如何帮助?
基于我对SQL Server 2008分区表和并行性的有限知识,我回答了上面的前三个问题.但如果我的答案不正确,你能否提供反馈,说明我的错误.
资源:
BarDev
我试图在我的解决方案中使用Fluent NHibernate,使用以下NHibernate xml配置部分进行配置
<hibernate-configuration xmlns="urn:nhibernate-configuration-2.2" >
<session-factory name="mitre">
<property name="dialect">NHibernate.Dialect.Oracle9iDialect</property>
<property name="connection.provider">NHibernate.Connection.DriverConnectionProvider</property>
<property name="connection.driver_class">NHibernate.Driver.OracleDataClientDriver</property>
<property name="connection.connection_string">Data Source=YOUR_DB_SERVER;Database=Northwind;User ID=YOUR_USERNAME;Password=YOUR_PASSWORD;</property>
<property name="connection.isolation">ReadCommitted</property>
<property name="default_schema">TRATE</property>
<!-- HBM Mapping Files -->
<mapping assembly="Markel.Mint.Mitre.Data" />
</session-factory>
</hibernate-configuration>
Run Code Online (Sandbox Code Playgroud)
在我的代码文件中,要实例化ISession:
NH_Cfg.Configuration cfg = new NH_Cfg.Configuration();
cfg.Configure();
Fluently.Configure(cfg).Mappings(m => m.FluentMappings = ????)
Run Code Online (Sandbox Code Playgroud)
我的问题是,如果我已经在NHibernate配置部分中指定了程序集,我是否需要显式设置FluentMappings?如果是这样,那么可以通过编程方式从NHibernate配置中检索这些数据吗?
谢谢奥兹
我有一个简单的问题,但我自己无法找到答案.
我正在使用EF4 CTP-5 Code First Model和手工生成的POCO.它正在处理生成的SQL中的字符串比较
WHERE N'Value' = Object.Property
Run Code Online (Sandbox Code Playgroud)
我知道我可以使用以下方法覆盖此功能:
[Column(TypeName = "varchar")]
public string Property {get;set;}
Run Code Online (Sandbox Code Playgroud)
这解决了该单个事件的问题并正确生成SQL为:
WHERE 'Value' = Object.Property
Run Code Online (Sandbox Code Playgroud)
但是,我正在处理一个非常大的域模型并遍历每个字符串字段并设置TypeName ="varchar"将非常非常繁琐.我想指定EF应该在整个板上看到字符串为varchar,因为这是该数据库中的标准,nvarchar是例外情况.
想要纠正这个问题的推理是查询执行效率.varchar和nvarchar之间的比较在SQL Server 2k5中非常低效,其中varchar到varchar比较几乎立即执行.
在抛出约束违规异常后,有没有办法继续使用线程绑定的hibernate会话?我在这里给出一个简短的例子:
Parent other=service.load(33); // loads a new parent
try {
Parent p=new Parent();
p.setName("A name");
service.save(p); // a @Transactional spring service class, throws ConstraintViolationException - name should be at least 15 characters long
} catch (ConstraintViolationException e){
// i would like to handle validation errors and proceed normally
// but the session is allready closed here
}
System.out.println("Children: " + other.getChildren()); // lazy initialization exception, even when using opensessioninview
Run Code Online (Sandbox Code Playgroud)
从现在开始,hibernate会话完全没用,即使对于只读操作,比如使用OpenSessionInView模式在视图中呈现延迟集合.
我试图模拟对服务器的调用,并验证测试的代码调用正确的方法.代码结构如下:
public interface IServerAdapter
{
void CallServer(Action<IServerExposingToClient> methodToCall, out bool serverCalled);
object CallServer(Func<IServerExposingToClient, object> methodToCall, out bool serverCalled);
}
public interface IServerExposingToClient
{
Resource GetResource(string id);
void AddResource(Resource resource);
}
Run Code Online (Sandbox Code Playgroud)
我正在测试的代码访问服务器上的一个实现IServerAdapter
并调用IServerExposingToClient
方法.这样做的原因是我们不希望在类中实现每个方法(它们中有很多方法)IServerExposingToClient
.由于这是在代理上调用的,因此它在我们的代码中运行良好.
在服务器上调用方法是这样的:
_mainViewModel.ServerAdapter.CallServer(m => m.AddResource(resource), out serverCalled);
Run Code Online (Sandbox Code Playgroud)
现在的问题是测试和嘲笑.我需要断言AddResource
在服务器上调用了method().在out serverCalled
(问题1),以确保这样的逻辑,因为它应该呼叫者流动电话做了它对服务器.
当我使用以下Moq设置时,我可以断言在服务器上调用了一些方法:
Mock<IServerAdapter> serverAdapterMock = new Mock<IServerAdapter>();
bool serverCalled;
bool someMethodCalled = false;
serverAdapterMock.Setup(c => c.CallServer(It.IsAny<Action<IServerExposingToClient>>(), out serverCalled)).Callback(() => someMethodCalled = true);
// assign serverAdapterMock.Object to some property my code …
Run Code Online (Sandbox Code Playgroud) 是否有一个特定的框架供PHP编写REST Web服务并将其公开给JSON?
或者你只是基本上编码...
我正在编写REST Web服务,主要是与MySQL中的数据库进行通信,身份验证等...
框架有什么优势?它更安全吗?
我已经堆叠和谷歌搜索了几个小时.我现在有点绝望了.我想在应用程序中更改应用程序的语言,而不仅仅是使用默认语言.
从我的尝试开始,我就像所有人一样重新启动.意思是,苹果强制您手动重启应用程序.这意味着您必须退出应用程序然后再次启动它.
好吧,谷歌搜索后,我试图设置一个警报,然后强迫应用程序退出
exit(0);
Run Code Online (Sandbox Code Playgroud)
我的坏,苹果似乎不喜欢这样,并阻止开发者使用它...我想我没有指向正确的方向.
最后,尽管存在所有问题,我还是可以见面,我想讨论一下.
任何提示?
编辑,APPLE的相关信息
通常,您不应在应用程序中更改iOS系统语言(通过使用AppleLanguages pref键).这违反了在Settings应用程序中切换语言的基本iOS用户模型,并且还使用了未记录的首选项键,这意味着在将来的某个时候,键名可能会更改,这会破坏您的应用程序.
如果要在应用程序中切换语言,可以通过手动加载捆绑包中的资源文件来实现.您可以使用NSBundle:pathForResource:ofType:inDirectory:forLocalization:为此目的,但请记住,您的应用程序将负责所有本地化数据的加载.
关于退出(0)问题,Apple DTS无法评论应用程序批准过程.您应该联系appreview@apple.com以获得此问题的答案.
好吧,到目前为止我必须选择.
我有一个UITableView,我想以编程方式将一行从位置N1移动到位置N2,我希望它从旧位置动画到新位置.我查看了UITableView文档,我只看到插入,重新加载和删除.你知道我可以通过编程方式做到这一点吗?
几个笔记:
我知道我可以从位置N1动画删除动画并同时将插入动画设置到位置N2.这是我的后备,但我希望用户明白它真的从N1转移到N2.
我不是在谈论允许用户将它从一个地方拖到另一个地方.我知道如何做到这一点,我正在寻找一种方法来以编程方式启动和动画移动.
我想知道我是否可以创建一个Vim插件,将表单发送到lein repl
启动的REPL会话.有没有办法将消息发送到现有的jline.ConsoleRunner进程?
我正在尝试使用此代码:
public string GetCPUId()
{
string cpuInfo = String.Empty;
string temp = String.Empty;
ManagementClass mc = new ManagementClass("Win32_Processor");
ManagementObjectCollection moc = mc.GetInstances();
foreach (ManagementObject mo in moc)
{
if (cpuInfo == String.Empty)
{
cpuInfo = mo.Properties["ProcessorId"].Value.ToString();
}
}
return cpuInfo;
}
Run Code Online (Sandbox Code Playgroud)
要在XP虚拟机(虚拟机)上获得hw uid,但我只得到一个消息框,上面写着:
Object reference not set to an instance of an object.
Run Code Online (Sandbox Code Playgroud)
是因为它是虚拟机还是什么?
c# ×3
ios ×2
iphone ×2
clojure ×1
code-first ×1
cpuid ×1
hardware-id ×1
hibernate ×1
ipad ×1
jline ×1
localization ×1
moq ×1
nhibernate ×1
performance ×1
php ×1
runtime ×1
sql ×1
sql-server ×1
uitableview ×1
unit-testing ×1
vim ×1
web-services ×1