问题列表 - 第19439页

更快的 CROSS JOIN 替代方案 - PostgreSQL

我正在尝试交叉联接两个表(客户和项目),这样我就可以创建按客户按项目的销售报告。我有 2000 个客户和 2000 个商品。

SELECT customer_name FROM customers; --Takes 100ms

SELECT item_number FROM items; --Takes 50ms

SELECT customer_name, item_number FROM customers CROSS JOIN items; Takes 200000ms

我知道这是 400 万行,但是有可能让它运行得更快吗?我想最终将其与这样的销售表结合起来:

SELECT customer_name, item_number, sales_total FROM customers CROSS JOIN items LEFT JOIN sales ON (customer.customer_name = sales.customer_name, item.item_number=sales.item_number);

销售表显然不会包含所有客户或所有商品,因此这里的目标是有一个报告,显示所有客户和所有商品以及已售出和未售出的商品。

我正在使用 PostgreSQL 8.4

postgresql cross-join

1
推荐指数
1
解决办法
9970
查看次数

转换存储过程调用?

我有以下SQL不起作用:

declare @id INT; 
set @id=0; 
exec insert_mail @id OUTPUT, 'ZLgeOZlqRGC6l57TyD/xYQ==', 4928, '2010\01\14\14\03131_2.eml', 'Suz, Katie and Kourtney''s Housewarming Party', CONVERT(DATETIME, '2015-01-18 14:03:13', 120); 
select @id;
Run Code Online (Sandbox Code Playgroud)

并以这种方式更改它修复它:

declare @id INT; 
set @id=0; 
declare @p_valid_until datetime;
set @p_valid_until=CONVERT(DATETIME, '2015-01-18  14:03:13', 120)
exec insert_mail @id OUTPUT, 'ZLgeOZlqRGC6l57TyD/xYQ==', 4928, '2010\01\14\14\03131_2.eml', 'Suz,  Katie and Kourtney''s Housewarming Party', @p_valid_until; 
select @id;
Run Code Online (Sandbox Code Playgroud)

有人可以解释一下吗?

干杯,简

sql-server stored-procedures

3
推荐指数
1
解决办法
7801
查看次数

使用 glRasterPos() 按像素在屏幕上移动对象

我有以下代码在我的应用程序中呈现文本,首先我获取世界中的鼠标坐标,然后使用这些坐标将我的文本放置在世界中,因此它将跟随我的鼠标位置:

编辑:在代码示例中添加了 buildfont() 函数:

GLvoid BuildFont(GLvoid)                                // Build Our Bitmap Font
{
    HFONT   font;                                       // Windows Font ID
    HFONT   oldfont;                                    // Used For Good House Keeping

    base = glGenLists(96);                              // Storage For 96 Characters

    font = CreateFont(  -12,                            // Height Of Font
                        0,                              // Width Of Font
                        0,                              // Angle Of Escapement
                        0,                              // Orientation Angle
                        FW_NORMAL,                      // Font Weight
                        FALSE,                          // Italic
                        FALSE,                          // Underline
                        FALSE,                          // Strikeout
                        ANSI_CHARSET,                   // Character Set Identifier
                        OUT_TT_PRECIS,                  // Output Precision
                        CLIP_DEFAULT_PRECIS, …
Run Code Online (Sandbox Code Playgroud)

c++ opengl raster

5
推荐指数
1
解决办法
2248
查看次数

转换内容在CDATA内的xml元素

我有一个像下面的xml片段

<Detail uid="6">
    <![CDATA[
    <div class="heading">welcome to my page</div>
    <div class="paragraph">this is paraph</div>
    ]]>
</Detail>
Run Code Online (Sandbox Code Playgroud)

我希望能够改变

<div class="heading">...</div> to <h1>Welcome to my page</h1>
<div class="paragraph">...</div> to <p>this is paragraph</p>
Run Code Online (Sandbox Code Playgroud)

你知道我怎么能在xslt 1.0中做到这一点

xml xslt cdata

8
推荐指数
1
解决办法
2万
查看次数

程序堆栈和堆,它们如何工作?

我知道每个正在运行的进程都在虚拟内存中有与之关联的页面,其中很少会根据需要加载到主内存中.我也知道程序将有一个堆栈,也有一个堆来分配动态内存.这是我的问题.

  1. 堆栈也是主内存中某些页面的一部分吗?
  2. 当程序进入等待状态时会发生什么?堆栈指针,程序计数器和其他信息存储在哪里?
  3. 为什么堆栈增长和堆增长?
  4. L1,L2缓存是否只包含一个连续内存块,或者它可以包含堆栈和堆的某些部分?

你能推荐一本涵盖这些东西的好书吗?

heap stack kernel

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

JFrame没有在正确的尺寸上制作

运行此代码时,将生成一个窗口但不是指定的维度.这有什么问题?

import javax.swing.*;
import java.awt.*;

public class Windowing {
    void JFrame(){
        JFrame frames = new JFrame("Total recall");
        frames.setSize(1000,8000);
        frames.setVisible(true);
        frames.pack();
        //Buttons push = new Buttons();
        //((Buttons) push).buttons();
        JTextField wager = new JTextField(1);
        wager.setSize(100,200);
        wager.setVisible(true);
        wager.setLocation(100, 200);
        frames.add(wager);
        //frames.add(push);
    }
}
Run Code Online (Sandbox Code Playgroud)

java swing jframe

2
推荐指数
1
解决办法
3798
查看次数

在Java中列出导入的正确方式是什么?

列出您将需要的每个单独的包装(参见#1)或者从包装中导入所有内容(参见#2)会更好吗?

1

import java.awt.image.ColorModel;
import java.awt.image.ComponentColorModel;
import java.awt.image.ColorConvertOp;
Run Code Online (Sandbox Code Playgroud)

2

import java.awt.*;
Run Code Online (Sandbox Code Playgroud)

java coding-style

20
推荐指数
2
解决办法
4440
查看次数

在QuartzCore中沿路径绘制文本

假设我有一个点数组,形成一条线和一个文本.我怎样才能沿着这条线绘制文本

 - (void)drawRect:(CGRect)rect 
Run Code Online (Sandbox Code Playgroud)

一个UIView?

我能够毫无问题地绘制路径.是否存在我忽略的标准方法或允许我沿着该路径绘制文本的框架?理想情况下,我只想使用QuartzCore/CoreGraphics来做这件事.

我尝试计算每个角色的宽度并旋转每个角色.这种作品,但我想知道是否有更优雅的方法.

cocoa-touch core-graphics objective-c quartz-graphics uiview

8
推荐指数
1
解决办法
6406
查看次数

在Ruby的Builder中自定义节点名称

我正在构建一个生成动态xml的工具.因此,我的模型具有非常通用的名称:

Project 
  has_many    :Groups

Group
  has_many    :Items
  has_many    :Groups
  belongs_to  :Project

Item
  has_many    :Params
  belongs_to  :Group

Param
  belongs_to  :Project
  belongs_to  :Group
  belongs_to  :Item
Run Code Online (Sandbox Code Playgroud)

因此,当我从项目控制器构建xml时,项目节点名称是xml的根节点.但我不希望它被称为"项目".我希望节点是@ project.params ['name']值的任何值.

我遇到的问题是,构建器的结构使这很困难...当我这样做时:

xml.project do
  ~some code
end
Run Code Online (Sandbox Code Playgroud)

...它始终将"项目"创建为根节点名称.我找不到一种方法来覆盖它以使用不同的名称.我希望以下内容能起作用:

xml.send(@project.params.name) {
  ...some code
}
Run Code Online (Sandbox Code Playgroud)

..但显然不起作用.所以我基本上试图找到一种方法来对我的params模型中配置的元素名称进行别名.任何建议将不胜感激.

ruby xml ruby-on-rails builder

3
推荐指数
1
解决办法
866
查看次数

TDD - 顶级功能有太多的模拟.我是否应该费心去测试呢?

我有一个带有Web前端,WCF Windows服务后端的.NET应用程序.应用程序非常简单 - 需要一些用户输入,将其发送到服务.该服务执行此操作 - 获取输入(Excel电子表格),提取数据项,检查SQL DB以确保项目尚不存在 - 如果它们不存在,我们向第三方数据供应商发出实时请求并检索结果,将它们插入数据库.它沿途做了一些记录.

我有一个Job类,有一个公共ctor和公共Run()方法.ctor接受所有参数,Run()方法执行上述所有逻辑.每个逻辑功能部分被拆分为一个单独的类 - IParser执行文件解析,IConnection执行与数据供应商的交互,IDataAccess执行数据访问等.Job类具有这些接口的私有实例,并使用DI构建默认情况下实际实现,但允许类用户注入任何接口.

在实际代码中,我使用默认的ctor.在我对Run()方法的单元测试中,我使用通过NMock2.0创建的所有模拟对象.此Run()方法本质上是此应用程序的"顶级"功能.

现在这是我的问题/问题:这个Run()方法的单元测试很疯狂.我有三个模拟对象,我发送到ctor,每个模拟对象设置自己的期望.最后,我验证.我有一些Run方法可以采用的不同流程,每个流程都有自己的测试 - 它可以找到数据库中的所有内容,而不是向供应商发出请求......或者可以抛出异常并且作业状态可以被设置为'失败'...或者我们可以得到我们没有数据并且需要发出供应商请求的情况(因此需要进行所有这些函数调用).

现在 - 在你对我大喊并说'你的Run()方法过于复杂之前!' - 这个Run方法只有50行代码!(它确实调用了一些私有函数;但整个类只有160行).由于所有"真实"逻辑都是在此类声明的接口中完成的.但是,这个函数最大的单元测试是80行代码,有13个调用Expect.BLAH().. _

这使得重新考虑了巨大的痛苦.如果我想改变这个Run()方法,我必须编辑我的三个单元测试并添加/删除/更新Expect()调用.当我需要重构时,我最终花费更多时间创建模拟调用,而不是实际编写新代码.在这个功能上做真正的TDD使得它变得更加困难,如果不是不可能的话.它让我觉得它根本不值得对这个顶级函数进行单元测试,因为实际上这个类没有做太多逻辑,它只是将数据传递给它的复合对象(它们都是完全单元测试的,不需要嘲讽).

那么 - 我是否应该费心去测试这个高级功能呢?这样做我获得了什么?或者我在这里完全滥用mock/stub对象?也许我应该废弃这个类的单元测试,而只是进行自动化集成测试,它使用对象的实际实现和Asserts()对SQL查询来确保存在正确的最终状态数据?我在这里错过了什么?

编辑:这是代码 - 第一个函数是实际的Run()方法 - 然后我的五个测试测试所有五个可能的代码路径.我因为NDA原因改变了一些,但一般的概念仍然存在.你对我如何测试这个功能有什么看错了,有什么改变的建议让它变得更好?谢谢.

tdd unit-testing mocking

7
推荐指数
1
解决办法
1099
查看次数