我们的网站变得非常困难,所以我们正在考虑优化一些现有的查询.
在研究这个时,我们遇到了几个查询,当查询中有一个简单的聚集索引引用时,执行计划的速度提高了4-5倍...例如
如果这是旧查询:
SELECT ...
FROM myTable
WHERE categoryID = @category
Run Code Online (Sandbox Code Playgroud)
根据SSMS中的执行计划,以下查询将快4倍:
SELECT ...
FROM myTable
WHERE categoryID = @category
AND lotID = lotID
Run Code Online (Sandbox Code Playgroud)
我们似乎无法理解这将如何使查询更快.聚集索引在lotID上,但由于它与自身进行比较,这有什么帮助?
我想在何时使用领域特定语言时提供一些实用指导.我找到了有关优缺点的资源,但是哪种项目可以保证使用?
似乎在创建和维护DSL方面需要投入大量资金,因此在什么应用领域我可以获得投资回报率?
编辑:似乎DSL的最常见用途是用于保持数据状态的文件格式,使用DSL进行程序逻辑和结构(可能是代码生成)怎么样?什么时候可行?
编辑#2我主要询问何时创建特定的DSL值得.当然,我们应尽可能使用现有的DSL来节省时间.
阅读:http://code.google.com/appengine/docs/python/datastore/gqlreference.html
我想用:
:= IN
但我不确定如何使它工作.我们假设如下
class User(db.Model):
name = db.StringProperty()
class UniqueListOfSavedItems(db.Model):
str = db.StringPropery()
datesaved = db.DateTimeProperty()
class UserListOfSavedItems(db.Model):
name = db.ReferenceProperty(User, collection='user')
str = db.ReferenceProperty(UniqueListOfSavedItems, collection='itemlist')
Run Code Online (Sandbox Code Playgroud)
如何进行查询以获取用户保存的项目列表?显然我可以这样做:
q = db.Gql("SELECT * FROM UserListOfSavedItems WHERE name :=", user[0].name)
Run Code Online (Sandbox Code Playgroud)
但这给我一个关键列表.我现在想要获取该列表并将其放入查询中以从UniqueListOfSavedItems中获取str字段.我以为我能做到:
q2 = db.Gql("SELECT * FROM UniqueListOfSavedItems WHERE := str in q")
Run Code Online (Sandbox Code Playgroud)
但是有些事情不对......任何想法?是(我在我的日常工作,所以现在不能测试):
q2 = db.Gql("SELECT * FROM UniqueListOfSavedItems __key__ := str in q)
Run Code Online (Sandbox Code Playgroud)
旁注:要搜索的是一个非常难以解决的问题,因为我真正关心的是"IN"运算符.
我对Windows环境中的代码很熟悉.对于我们的某些产品,用户不断要求移植到Linux和Mac.首先,我需要一系列有关系统API的文档,如何使用它们,何时使用它们等文档.
那么,Mac OS和Linux有没有MSDN等价物?最好是可下载的格式?
PS.我想在Free Pascal/Lazarus或RealBasic上工作.
我有一个byte[]从我碰巧知道包含UTF-8的文件加载的数组.在一些调试代码中,我需要将其转换为字符串.有没有一个班轮可以做到这一点?
在封面下它应该只是一个分配和一个memcopy,所以即使它没有实现,它应该是可能的.
我有一个带有ListBox和ContentPanel的WPF UserControl.ListBox绑定到一个ObservableCollection,其中包含苹果和橙子.
什么被认为是设置它的正确方法,所以如果我选择一个苹果,我在右边看到AppleEditor,如果我选择橙色,OrangeEditor会出现在内容面板中?
在Django,我怎样才能看到当前访客的数量?或者我如何确定活动会话的数量?
这是一个好方法吗?
使用django.contrib.sessions.models.Session,将到期时间设置得很短.每当有人在网站上做某事时,更新到期时间.然后计算未过期的会话数.
我试图开始使用Google Perf Tools来分析一些CPU密集型应用程序.这是一个统计计算,使用`ofstream'将每个步骤转储到文件中.我不是C++专家,所以我遇到麻烦找到瓶颈.我的第一次传球给出结果:
Total: 857 samples
357 41.7% 41.7% 357 41.7% _write$UNIX2003
134 15.6% 57.3% 134 15.6% _exp$fenv_access_off
109 12.7% 70.0% 276 32.2% scythe::dnorm
103 12.0% 82.0% 103 12.0% _log$fenv_access_off
58 6.8% 88.8% 58 6.8% scythe::const_matrix_forward_iterator::operator*
37 4.3% 93.1% 37 4.3% scythe::matrix_forward_iterator::operator*
15 1.8% 94.9% 47 5.5% std::transform
13 1.5% 96.4% 486 56.7% SliceStep::DoStep
10 1.2% 97.5% 10 1.2% 0x0002726c
5 0.6% 98.1% 5 0.6% 0x000271c7
5 0.6% 98.7% 5 0.6% _write$NOCANCEL$UNIX2003
这是令人惊讶的,因为所有真正的计算都发生在SliceStep :: DoStep中."_write $ UNIX2003"(我在哪里可以找到它是什么?)似乎来自编写输出文件.现在,让我感到困惑的是,如果我注释掉所有outfile << "text" …
我想限制我在Rails中看到的堆栈跟踪的大小.我对调试Rails堆栈并不像我自己的应用程序那么感兴趣.是否有任何内置方法让Rails动态执行此操作?
在javascript中有日期/时间的自然语言解析器吗?