我有一组用Sql Profiler记录的翻转.trc文件.
mytrace.trc
mytrace_1.trc
mytrace_2.trc
mytrace_3.trc
Run Code Online (Sandbox Code Playgroud)
我可以使用此命令导入第一个:
use [my-database]
SELECT * INTO trace_folder
FROM::fn_trace_gettable('C:\mytrace.trc', 4)
Run Code Online (Sandbox Code Playgroud)
但是,这只会加载第一个文件,而不是全部四个.
在SQL Server中是否有一种优雅的方法可以在所有行中查找单个varchar(50)列中的所有不同字符?
如果可以在没有游标的情况下完成奖励积分:)
例如,假设我的数据包含3行:
productname
-----------
product1
widget2
nicknack3
Run Code Online (Sandbox Code Playgroud)
不同的字符库存将是"productwigenka123"
更新 - 复制问题的过程:
1)在c:\ projects\restart-demo创建一个网站项目
2)添加默认的web.config和一个虚拟的aspx页面test.aspx
3)映射IIS以指向根文件夹c:\ projects\restart-demo
4)使用perfmon,运行状况监视,global.asax Application_End等跟踪监视应用程序重启.
5)浏览器http://localhost/test.aspx中的请求页面
申请开始
6)创建新文件夹c:\ projects\restart-demo\asdf
申请结束
7)浏览器http://localhost/test.aspx中的请求页面
申请开始
8)将文件夹c:\ projects\restart-demo\asdf重命名 为 c:\ projects\restart-demo\asdf1
申请结束
结束更新
我们使用后端CMS在ASP.NET站点中生成文件和文件夹.
用户可以创建/修改/删除文件并将其推送到Web场.
我们注意到的一个问题:
当用户创建,重命名或删除文件夹时,会导致App Domain重新启动.结果,会话,缓存等都丢失了.
请注意,它不需要是/ bin或/ App_Code之类的特殊文件夹.
有什么方法可以防止这种行为吗?
它实际上阻碍了性能,原因有两个:
asp.net appdomain application-pool content-management-system
我们将散列密码存储在数据库表中.
我们使用MD5CryptoServiceProvider为每个密码添加随机salt值和哈希值.
这样安全吗?我听说MD5"坏了".
如果没有,你能推荐使用备用哈希方法(特定的.NET框架类)吗?
我已经Request.ServerVariables在ASP.NET中使用了这个集合,但它并不像那样全面phpinfo().
如何打印ASP.NET的所有信息,包括服务器软件,驱动程序等?
更新2009.04.24
我的问题的主要问题不是开发人员的混淆以及该怎么做.
关键是要了解分隔值何时是正确的解决方案.
我已经看到商业产品数据库中使用的分隔数据(Ektron lol).
SQL Server甚至具有XML数据类型,因此可以用于与分隔字段相同的目的.
/结束更新
我正在设计的应用程序有一些多对多的关系.过去,我经常使用关联表在数据库中表示这些.这给开发人员带来了一些困惑.
这是一个示例DB结构:
Document
---------------
ID (PK)
Title
CategoryIDs (varchar(4000))
Category
------------
ID (PK)
Title
Run Code Online (Sandbox Code Playgroud)
文档和类别之间存在多对多关系.
在此实现中,Document.CategoryIDs是一个以管道分隔的大型CategoryID列表.
对我来说,这很糟糕,因为它需要在查询中使用子字符串匹配 - 这不能使用索引.我认为这将是缓慢的,不会扩展.
使用该模型,要获取类别的所有文档,您需要以下内容:
select * from documents where categoryids like '%|' + @targetCategoryId + '|%'
Run Code Online (Sandbox Code Playgroud)
我的解决方案是创建一个关联表,如下所示:
Document_Category
-------------------------------
DocumentID (PK)
CategoryID (PK)
Run Code Online (Sandbox Code Playgroud)
这让开发人员感到困惑.我缺少一些优雅的替代解决方案吗?
我假设Document中会有数千行.类别可能大约40行左右.主要关注的是查询性能.我是否过度设计了这个?
是否存在将数据列表存储在数据库列中而不是将数据推送到关联表的情况?
还要考虑我们可能需要在文档之间创建多对多关系.这将建议一个关联表Document_Document.这是首选设计还是将关联的文档ID存储在单个列中更好?
谢谢.
在SQL Server 2005中,有内置角色:
拥有db_datareader
db_datawriter权限
等等
是否有任何角色可以让用户执行存储过程?
我不想使用db_owner,因为这将允许删除和更新,这是我不需要的.我需要的唯一权限是:
选择
执行
我们在ASP.NET中使用HttpRuntime.Cache API来缓存从数据库中检索的数据.
对于这个特定的应用程序,我们的数据库查询具有很多参数,所以我们的缓存键看起来像这样:
表表1 =;参数1 = somevalue1;参数2 = somevalue2;参数3 = somevalue3; param4 = somevalue4; param5 = somevalue5; param6 = somevalue6 ...等...
对于某些查询,我们有很多参数,缓存键长度为几百个字符.
我的问题:这些缓存键的长度是否有限制?在内部,它使用字典,因此从理论上讲,查找时间应该是不变的.但是,我想知道我们是否有可能遇到一些性能/内存问题.
更新2009-05-21
我一直在测试使用单个网络共享的#2方法.导致Windows Server 2003在加载时出现一些问题:
http://support.microsoft.com/kb/810886
结束更新
我收到了一个ASP.NET网站的提案,其工作方式如下:
硬件负载平衡器 - > 4个IIS6 Web服务器 - >带有故障转移群集的SQL Server DB
这是问题......
我们选择存储Web文件的位置(aspx,html,css,images).提出了两种选择:
1)在4个IIS服务器中的每个服务器上创建相同的Web文件副本.
2)将Web文件的单个副本放在4个Web服务器可访问的网络共享上.4个IIS服务器上的Web根将映射到单个网络共享.
哪个更好的解决方案?选项2显然更易于部署,因为它只需要将文件复制到一个位置.但是,我想知道是否存在可伸缩性问题,因为四个Web服务器都访问一组文件.IIS会在本地缓存这些文件吗?它会在每个客户端请求中达到网络共享吗?此外,访问网络共享总是比获取本地硬盘驱动器上的文件慢?如果添加更多IIS服务器,网络共享上的负载是否会变得更糟?
为了给出观点,这是针对一个目前每月点击量达到约2000万次的网站.在最近的高峰期,它每秒接收约200次点击.
如果您对此类设置有特殊经验,请与我们联系.感谢您的投入.
更新2009-03-05
为了澄清我的情况 - 这个系统中的"部署"比典型的Web应用程序更频繁.该网站是后台CMS的前端.每次在CMS中发布内容时,新页面(aspx,html等)都会自动推送到实际站点.部署基本上是"按需".从理论上讲,这种推动可能会在一分钟或更长时间内发生几次.所以我不确定一次部署一个Web服务器是否切实可行.思考?
我有一个在Windows 2008上的IIS7下运行的ASP.NET 3.5网站.
当我重新启动IIS(iisreset),然后点击页面时,初始启动非常慢.
我在Process Explorer中看到以下活动:
在此期间我也没有看到任何其他使用CPU的进程.它基本上只是挂起.
在那段时间里发生了什么?如何追踪到目前为止的拍摄情况?
asp.net ×4
sql ×3
sql-server ×3
architecture ×2
c# ×2
iis ×2
appdomain ×1
caching ×1
cryptography ×1
database ×1
dictionary ×1
hash ×1
many-to-many ×1
md5 ×1
passwords ×1
performance ×1
permissions ×1
phpinfo ×1
puzzle ×1
roles ×1
scalability ×1
startup ×1
string ×1
trace ×1
webserver ×1