只需阅读Omar在他的博客Linq上的这篇有趣的文章,使用未提交的读取解决事务死锁和查询超时问题,最后Javed Hasan开始与他讨论他在高容量网站上解决nolock情况的问题.
在这里,试图解决的问题是,从sql意义上我们需要使用带有NOLOCK的Select语句或使用SET TRANSACTION LEVEL READ UNCOMMITTED,否则在DB中的高容量行将被锁定并导致错误.Omar使用的技术是Linq2Sql,所以问题是我们如何在你的C#数据访问代码中实现这一点,所以上述情况不会发生?
基本上在帖子中,Omar通过在现实世界网站上使用SqlProfiler等工具进行工作和测试来解决他的问题,而Javed Hasan则使用MSDN文档和Scott Hanselman的博客文章等来解决他的问题.
奥马尔建议使用以下内容
using (var db = new DropthingsDataContext2())
{
db.Connection.Open();
db.ExecuteCommand("SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;");
var user = db.aspnet_Users.First();
var pages = user.Pages.ToList();
}
Run Code Online (Sandbox Code Playgroud)
而Javed Hasan表示
using (new TransactionScope(TransactionScopeOption.Required,
new TransactionOptions { IsolationLevel = IsolationLevel.ReadUncommitted }))
{
//Your db Operation
}
Run Code Online (Sandbox Code Playgroud)
我非常有兴趣知道你们在这个特定问题上你们在StatckOverflow这样的高容量网站上做了什么,或者杰夫和他们的家伙在这方面做了什么?
编辑:在阅读完第一篇文章后,我想在奥马尔的帖子中指出一些内容.
sql-server nolock transactionscope read-uncommitted linq-to-sql
我将开始为我的Web项目构建一个小帮助程序库,但不确定它们应该包含哪些典型功能(仅使用C#和ASP.NET构建Web应用程序).我在考虑记录功能,缓存,邮件等.我应该放入其他任何典型功能吗?
我有一个MFC项目,即链接到第三方DLL.在程序退出时,IDE报告"检测到的内存泄漏!" 并倾倒泄漏.
这些泄漏来自第三方DLL.我很确定这些都被错误地报道了.(快速Google检查表明,在CRT销毁文件范围内的变量之前,MFC会检查内存泄漏.)
有没有办法禁用内存泄漏检查,只有该DLL?
回应到目前为止发布的答案
我不认为我滥用了API.我怀疑的行为可以用一个简单的项目来复制
这是代码
class foo
{
public:
foo(void) { p = new int; };
~foo(void) { delete p; }
private:
int* p;
};
Run Code Online (Sandbox Code Playgroud)
在dll项目中,创建类foo的实例,在文件级别作用域.
foo g_foo;
// This is an example of an exported function.
TEMPDLL_API int exportedFunction(void)
{
return 42;
}
Run Code Online (Sandbox Code Playgroud)
在MFC项目中,链接到库,并在InitInstance()中调用导出的函数
运行应用程序时,即使p被删除,也会在调用g_foo的析构函数时报告内存泄漏.
我必须将Java.Polynomial实现为学校作业.部分方法是加(多项式),乘法(多项式)等.
在类似的情况下
p.add(q); // computes p + q
Run Code Online (Sandbox Code Playgroud)
是否更好地返回void并将多项式的总和保持在p?还是更好地返回多项式并保持p的前值保持不变?
我的直觉告诉我,我应该做以下事情
你怎么看?
我有一个带有第三方应用程序的四核系统,它偶尔会旋转几个进程(总是相同的可执行文件,但它有几个实例)并占用100%的CPU时间.我还在同一个盒子(IIS和第三方)上运行了几个Web服务.
所有内核繁忙的问题是它使第三方Web服务器超时(IIS工作正常,但比平时慢).我无法控制第三方Web服务器,它是更大产品的一部分,必须运行.因此,我尝试使用处理器亲和性(通过SysInternals Process Explorer)并将这些讨厌的进程限制为4个内核中的3个内核,并将第4个内核专用于第三方Web服务器,它似乎运行良好.
问题是它只对正在运行的进程设置了亲和力,而不是在可执行级别上设置亲和力,所以在这些进程完成后再重新生成为新进程时,它们再次相同 - 它们占用了所有4个核心.所以,我用Google搜索了这个来自Microsoft的ImageCfg.exe实用程序,但是我无法在Microsoft网站上找到它进行下载,我发现有些人尝试了它,现在抱怨它不能真正起作用.
有没有办法将亲和力粘贴到可执行文件上?
在PHP中构建管理界面的最快方法是什么?
它可以是一个框架,一个与特定方法相结合的库/库,或者其他什么.
背景:我是一名Django开发者,被自动管理员宠坏了,他必须用PHP提供网络应用程序.该应用程序非常管理区域/形式,具有不同的访问级别.
有没有人有链接和资源从Java连接到AS400?
我记得几年前,有人告诉我一个连接器,它模拟键盘上的KeyStrokes和其他直接连接的"最纯粹"的方法.
在网络上我发现了很多链接,但我找不到一个完整的产品来做到这一点(我可能没有使用正确的关键字).
编辑
谢谢你的答案:
我们正在寻找的是一种访问AS400内部数据和/或它使用的屏幕的方法,并将它们暴露给其他重新使用的新应用程序.既可以作为某种Web服务,也可以直接通过Java(而java将使用webservices公开操作)
提前致谢.
编辑
根据MicSim的帖子,我也发现了这个链接:
http://www.ibm.com/developerworks/library/ws-as400/index.html
我可以动画添加一个UIView到我的应用程序,它看起来非常漂亮,所以谢谢你苹果.
但是,如何从超级视图中移除此视图的动画?
我正在使用:
CATransition *animation = [CATransition animation];
[animation setDuration:1];
[animation setType:kCATransitionReveal];
[animation setTimingFunction:[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseIn]];
[[myview layer] addAnimation:animation forKey:kCATransitionReveal];
Run Code Online (Sandbox Code Playgroud)
动画"进入"过渡...你如何动画"出"过渡????
我正在尝试编写一个小型Web工具,它使用Excel文件,解析内容,然后将数据与另一个数据集进行比较.这可以在JavaScript中轻松完成吗?有没有一个JavaScript库可以做到这一点?
我有一些链接按钮,我在其中动态添加样式.我在一个方法中做了以下事情:
LinkButton lb = new LinkButton();
lb.Style["font-weight"] = "bold";
Run Code Online (Sandbox Code Playgroud)
当单击另一个链接时,它应该展开当前单击的粗体和粗体的链接按钮,所以在执行此操作的方法中,我尝试过:
lb.Style["font-weight"] = "none";
Run Code Online (Sandbox Code Playgroud)
以上不起作用,先前选择的链接保持粗体.
我刚刚意识到可能存在的问题.我正在创建多个链接,它看起来像是因为所有链接都被命名为lb,所以它永远不会删除粗体.我试图想办法让它记住以前选择的链接并且只展开那个链接.
asp.net ×2
c# ×2
java ×2
affinity ×1
cocoa-touch ×1
django ×1
excel ×1
executable ×1
frameworks ×1
html5 ×1
ibm-midrange ×1
interop ×1
iphone ×1
javascript ×1
linq-to-sql ×1
memory-leaks ×1
mfc ×1
nolock ×1
oop ×1
parsing ×1
php ×1
processor ×1
sql-server ×1
uiview ×1
windows-xp ×1