问题几乎说明了一切.
我有一个支持定义良好的API的现有站点.
我需要为它建立一个很好的管理界面,而且,由于我之前使用过ActiveAdmin创建效果,我很乐意在这里使用它.
但是,我找不到有关是否可以这样做的任何细节.
我读过评论说AA支持ActiveModel类型的对象,它们不一定要基于ActiveRecord,但我已经不用自己尝试了,或者找到了这样的例子.
任何人都知道这是否可能?
我目前正在使用这样的代码来检测SQL服务器作业是否正在运行.(这是SQL Server 2005,所有SP的)
return (select isnull(
(select top 1 CASE
WHEN current_execution_status = 4 THEN 0
ELSE 1
END
from openquery(devtestvm, 'EXEC msdb.dbo.sp_help_job')
where current_execution_status = 4 and
name = 'WQCheckQueueJob' + cast(@Index as varchar(10))
), 1)
)
Run Code Online (Sandbox Code Playgroud)
那里没有问题,一般来说,它运作得很好.
但....(总是一个但是)
有时,我会调用它,取回"工作未运行"的结果,此时我会尝试通过以下方式启动工作
exec msdb.dbo.sp_start_job @JobName
Run Code Online (Sandbox Code Playgroud)
并且SQL将返回"SQLAgent拒绝启动该作业,因为它已经有待处理的请求".
好.也不是问题.可以想象,在此代码启动之前,可以启动目标作业的一个小窗口,但在检查它是否已启动之后.但是,我可以将它包装在try catch中,然后忽略错误,对吧?
begin try
if dbo.WQIsQueueJobActive(@index) = 0 begin
exec msdb.dbo.sp_start_job @JobName
break
end
end try begin catch
-- nothing here
end catch
Run Code Online (Sandbox Code Playgroud)
不过这是问题所在.
10次中有9次,这很好用.SQL代理将引发错误,它被捕获,并且处理继续,因为作业已经运行,没有任何伤害没有犯规.
但偶尔,我会在"作业历史记录"视图中收到一条消息(请记住上面的代码,以检测特定作业是否正在运行,如果没有实际从另一个作业运行则启动它)说该作业失败,因为"SQLAgent已经拒绝开始工作,因为它已经有待处理的请求".
当然,这是TRY CATCH应该处理的确切错误!
当发生这种情况时,正在执行的工作就会消失,但不能立即从我所知道的情况开始,只是非常接近.我把日志记录到了所有地方并且没有一致性.有一次它失败了,它将在a处,a下一次在b处.在某些情况下,地方A和地方B只有一个
select @var = 'message'
Run Code Online (Sandbox Code Playgroud)
在他们之间.很奇怪.基本上,这项工作似乎是毫不客气地被抛弃的,而且在工作中要执行的任何事情都不会被执行.
但是,如果我删除"exec …
我有一个在虚拟环境下运行的SQL 2005 DB.
为简化起见,假设我有两个SQL SELECT查询.他们都做了完全相同的事情.但我正在尝试分析它们以达到性能目的.
通常,我会启动一个本地数据库,加载一些数据并使用时序将一个变量与其他变量进行比较.
但在这种情况下,由于数据库很大并且它是一个测试框,因此客户端已将其放置在为其他VM提供服务的主机上.
数据库太大而无法在本地拉下来,所以这样做(至少目前为止).
但我的主要问题是,当我对服务器运行查询时,时间到处都是.我可以运行+ exact +相同的查询4次,得到7秒,8分钟,3:45分钟和15分钟的时间.
我的第一个想法是使用SET STATISTICS IO ON.
但是,这基本上产量上读取和写入的表统计是查询,这取决于在查询中的变化(临时表,VS视图,VS连接,等等)不能真正精确地比较,除了在聚合.
然后,虽然SET STATISTICS TIME ON,并且只使用CPU时间,但这似乎折扣了所有IO,这也没有为良好的基线做好准备.
我的问题是,在这种情况下,还有其他任何统计或性能分析技术可用吗?
我编写了一个 .net 4.0 框架应用程序(在 VB.net 中)。这确实是一件简单的事情,基本上只是一个带有一些花哨功能的屏幕保护程序。
然而,它确实使用.net 的网络客户端功能来查询互联网上的各个站点。
但它不是一个网络应用程序。它不在 ASP 下运行,或者据我所知,与 ASP.net 没有任何关系。
但是,当我在安装了 Comodo 防火墙的计算机上运行它时,我收到来自 Comodo 的警告弹出窗口,表明
1)程序正在尝试访问互联网(这是一件好事,这里没问题)。
但
2)该程序正在尝试创建注册表项,例如:hklm\system\controlset001\services\asp.net_4.0.30319\names{somelonghexvalue}
现在,我一直遵循这样的规则:基本上 HKLM 中唯一混乱的东西是安装程序,但这里这个应用程序试图在那里做一些事情。它来自 .net 框架,我的应用程序根本不从注册表请求任何密钥。
我猜测框架已被授予执行此操作的权限,即使当前用户无权在 HKLM 中创建密钥(因为我没有收到任何错误,即使应用程序在权限很少的凭据下运行) 。
所以,我的问题是,有人以前遇到过这个问题,或者知道为什么框架在运行与 ASP.net 没有任何关系的标准 EXE 时会创建 ASP.Net 注册表项?
我确实提出了这个问题, ASP.NET 4 注册表更改 ,但这种情况下的提问者实际上是在处理 ASP.net 应用程序。在这种情况下,我不是。
--编辑--为 Clara 添加了用于执行 HTTP Get 的代码
Dim request As HttpWebRequest = DirectCast(WebRequest.Create(requestUri), HttpWebRequest)
Dim resultPage As String = String.Empty
Using httpWebResponse As HttpWebResponse = DirectCast(request.GetResponse(), HttpWebResponse)
Using responseStream As Stream = httpWebResponse.GetResponseStream()
Using reader As New …Run Code Online (Sandbox Code Playgroud) 我已经检查了一些样本,但没有一个与我正在尝试的完全相同.
我的作品大部分都是有效的,但它并不能正常工作.
这是解释问题的小提琴.
请注意,顶部集合工作正常,但它是静态定义的.
底部集合(Tom,steve,bob)基本上"工作",但是标题元素最终都在可折叠标题和可折叠部分中被隐藏.
好像我一定做错了什么,但我还没弄清楚是什么.
有任何想法吗?
我可以根据另一个单元格对一个单元格进行条件格式化,没有问题,但这只允许我进行简单的格式化选择(如颜色,字体等).
我真正想要的是我在单元格A1中有一个数字,我想在单元格A1中放置一个DATABAR,它使用单元格B1作为绘制数据条的值.
据我所知,我只能根据该单元格中的实际值在单元格中绘制数据条.
这是对的还是我错过了什么?
sql-server ×2
t-sql ×2
.net-4.0 ×1
activeadmin ×1
activerecord ×1
collapsable ×1
excel ×1
knockout-2.0 ×1
performance ×1
ruby ×1
vb.net ×1