小编Jef*_*ang的帖子

什么时候应该使用交叉申请而不是内部联接?

使用CROSS APPLY的主要目的是什么?

我已经阅读(模糊地,通过互联网上的帖子),cross apply如果你正在进行分区,那么在选择大型数据集时可以更有效率.(寻找灵感)

我也知道CROSS APPLY 不需要UDF作为右表.

在大多数INNER JOIN查询(一对多关系)中,我可以重写它们以供使用CROSS APPLY,但它们总是给我相同的执行计划.

任何人都可以给我一个很好的例子,告诉我什么时候能有效的CROSS APPLY情况INNER JOIN


编辑:

这是一个简单的例子,执行计划完全相同.(告诉我一个他们不同的地方,哪里cross apply更快/更有效率)

create table Company (
    companyId int identity(1,1)
,   companyName varchar(100)
,   zipcode varchar(10) 
,   constraint PK_Company primary key (companyId)
)
GO

create table Person (
    personId int identity(1,1)
,   personName varchar(100)
,   companyId int
,   constraint FK_Person_CompanyId foreign key (companyId) references dbo.Company(companyId)
,   constraint PK_Person primary key (personId)
) …
Run Code Online (Sandbox Code Playgroud)

sql t-sql sql-server performance cross-apply

890
推荐指数
11
解决办法
68万
查看次数

为Javascript Date对象增加小时数?

我很惊讶Javascript的Date对象没有实现任何类型的添加功能.

我只想要一个可以做到这一点的函数:

var now = Date.now();
var fourHoursLater = now.addHours(4);

function Date.prototype.addHours(h) {

   // how do I implement this?  

}
Run Code Online (Sandbox Code Playgroud)

我只想在一个方向上指点一些.

  • 我需要进行字符串解析吗?

  • 我可以使用setTime吗?

  • 毫秒怎么样?

像这样:

new Date(milliseconds + 4*3600*1000 /*4 hrs in ms*/)?  
Run Code Online (Sandbox Code Playgroud)

这看起来真的很乱 - 它甚至可以工作吗?

javascript datetime

353
推荐指数
10
解决办法
43万
查看次数

JQuery动态加载Javascript文件

我有一个非常大的javascript文件,我只想在用户点击某个按钮时加载.我使用jQuery作为我的框架.是否有内置方法或插件可以帮助我这样做?

更多细节:我有一个"添加注释"按钮,应该加载TinyMCE javascript文件(我把所有TinyMCE的东西都煮成了一个JS文件),然后调用tinyMCE.init(...).

我不想在初始页面加载时加载它,因为不是每个人都会点击"添加评论".

我明白我可以这样做:

$("#addComment").click(function(e) { document.write("<script...") });
Run Code Online (Sandbox Code Playgroud)

但是有更好/封装的方式吗?

javascript jquery tinymce lazy-loading jquery-plugins

131
推荐指数
2
解决办法
11万
查看次数

协议缓冲区与JSON或BSON

有没有人有关于协议缓冲区与BSON(二进制JSON)或一般JSON的性能特征的任何信息?

  • 电线尺寸
  • 序列化速度
  • 反序列化速度

这些似乎是用于HTTP的良好二进制协议.我只是想知道从长远来看哪个C#环境会更好.

这是我在BSONProtocol Buffers上阅读的一些信息.

c# comparison json protocol-buffers bson

90
推荐指数
4
解决办法
5万
查看次数

学习Erlang的最佳方法是什么?

除了特定的项目(虽然也欢迎这些)...

我应该在办公桌上有哪些工具,书籍,文章和其他资源来帮助我学习Erlang?

另外,Erlang有移动运行时吗?

请指出我正确的方向.

注意:是的,我访问过Erlang和维基百科,但我想听听一些可靠,经验丰富的意见.

erlang

74
推荐指数
4
解决办法
7万
查看次数

列的顺序是否在group by子句中重要?

如果我有两个列,一个具有非常高的基数,另一个具有非常低的基数(唯一的值#),那么我按哪个顺序分组?

这是一个例子:

select 
     dimensionName, 
     dimensionCategory, 
     sum(someFact)
from SomeFact f
join SomeDim d on f.dimensionKey = d.dimensionKey
group by 
    d.dimensionName,  -- large number of unique values
    d.dimensionCategory -- small number of unique values
Run Code Online (Sandbox Code Playgroud)

是否有重要的情况?

sql sql-server group-by

74
推荐指数
4
解决办法
3万
查看次数

如何防止用户生成的HTML中的Javascript注入攻击

我正在保存用户提交的HTML(在数据库中).我必须防止Javascript注入攻击.我见过的最有害的是style ="expression(...)"中的脚本.

除此之外,有效用户内容的公平金额将包含特殊字符和XML结构,所以我想如果可能的话,避免白名单的做法.(列出每个允许的HTML元素和属性).

Javascript攻击字符串的示例是:

1)

"你好,<dog>元素有一个<script> alert("bad!")</ script>问题......"

2)

"嗨,这个<b style ="width:表达式(警告('坏!'))">狗</ b>是黑色的."

有没有办法防止这样的Javascript,并保持其余的完整?

到目前为止,我唯一的解决方案是使用正则表达式来删除某些模式.它解决了案例1,但不是案例2.

编辑: 对不起,忘了提及环境 - 它本质上是MS堆栈:

  • SQL Server 2005
  • C#3.5(ASP.NET)
  • Javascript(显然)和jQuery.

我希望阻塞点成为ASP.NET层 - 任何人都可以制作错误的HTTP请求.

编辑2:

感谢大家的链接.假设我可以定义我的列表(他的内容将包含许多数学和编程结构,因此白名单会非常烦人)我仍然有一个问题:

什么样的解析器允许我删除"坏"部分?坏部分可能是一个完整的元素,但那么属于这些属性的脚本呢.我无法删除<a hrefs> willy-nilly.

html javascript regex parsing code-injection

52
推荐指数
3
解决办法
8万
查看次数

使用Javascript或jQuery将元素写入子iframe

我有这样的事情:

<html>
  <body>
     <iframe id="someFrame"></iframe>
  </body>
</html>
Run Code Online (Sandbox Code Playgroud)

我想使用jQuery编写元素,以便完全等效的HTML将是这样的:

<html>
  <body>
    <iframe id="someFrame">
      <!-- inside the iframe's content -->
      <!-- <html><body>  -->
      <div>A</div>
      <div>B</div>
      <div>C</div>
      <!-- </body></html> -->
    </iframe>
  </body>
</html>
Run Code Online (Sandbox Code Playgroud)

或者,任何普通的Javascript都可以.

谢谢.

编辑:经过一些研究,似乎我正在寻找一个IE等效的iframe的contentDocument属性."contentDocument"是FF支持的W3C标准,但IE不支持.(惊喜)

javascript iframe jquery

48
推荐指数
4
解决办法
9万
查看次数

在Javascript中通过引用传递字符串

我想创建一个字符串并通过引用传递它,以便我可以更改单个变量并将其传播到引用它的任何其他对象.

举个例子:

function Report(a, b) {
    this.ShowMe = function() { alert(a + " of " + b); }
}

var metric = new String("count");
var a = new Report(metric, "a"); 
var b = new Report(metric, "b"); 
var c = new Report(metric, "c"); 
a.ShowMe();  // outputs:  "count of a";
b.ShowMe();  // outputs:  "count of b";
c.ShowMe();  // outputs:  "count of c";
Run Code Online (Sandbox Code Playgroud)

我希望能够实现这一目标:

var metric = new String("count");
var a = new Report(metric, "a"); 
var b = new Report(metric, "b"); 
var c …
Run Code Online (Sandbox Code Playgroud)

javascript string pass-by-reference

42
推荐指数
3
解决办法
5万
查看次数

如何强制SqlConnection在物理上关闭,同时使用连接池?

我知道如果我实例化一个SqlConnection对象,我真的从连接池中获取连接.当我调用Open()时,它将打开连接.如果我在该SqlConnection对象上调用Close()或Dispose()方法,它将返回到连接池.

但是,这并没有真正告诉我它是否真的关闭,或者我是否仍然有一个与数据库的活动连接.

如何强制SqlConnection在网络级别关闭,或者至少告诉它什么时候关闭?

例:

using(SqlConnection conn = new SqlConnection(DBConnString)) {

   conn.Open();
   SqlCommand cmd = conn.CreateCommand();
   ...
   cmd.ExecuteReader(CommandBehavior.CloseConnection);
   ...
}
Run Code Online (Sandbox Code Playgroud)
  • 首次运行:300毫秒
  • 第二轮:100毫秒
  • 第三次运行:100毫秒
  • 等待很长时间(30分钟)后:300毫秒

如果连接是TRULY关闭,则第二次和第三次运行也应该是300 ms.但我知道这些运行并没有真正关闭连接(我检查了SQL Server的活动监视器).它不需要额外的200ms来执行身份验证/等.

如何强制连接真正关闭?

思路

  • CommandBehavior.CloseConnection有效吗?(显然不是?)
  • 在连接字符串中设置"Max Pool Size = 0"是否有效?(这将是一个愚蠢的解决方案)
  • Dispose()有效吗?

参考

c# sql ado.net database-connection connection-pooling

40
推荐指数
3
解决办法
3万
查看次数