我有一个450GB的数据库...拥有数百万条记录。
这是查询示例:
SELECT TOP 1 * FROM c WHERE c.type='water';
Run Code Online (Sandbox Code Playgroud)
为了加快查询速度,我考虑只采用第一个查询,但是我们注意到,尽管数据库中的第一个记录符合我们的约束条件,但查询仍然需要花费相当长的时间。
所以,我的问题是,SELECT TOP 1真正的工作原理是什么?可以:
A)选择所有记录,然后仅返回第一个(顶部)
type='water'
B)返回遇到的第一个记录type='water'
假设我有一个 Pandas DataFrame:
x = pd.DataFrame(data=[5,4,3,2,1,0,1,2,3,4,5],columns=['value'])
x
Out[9]:
value
0 5
1 4
2 3
3 2
4 1
5 0
6 1
7 2
8 3
9 4
10 5
Run Code Online (Sandbox Code Playgroud)
现在,我想,给定一个索引,在x满足条件之前查找行。例如,如果index = 2:
x.loc[2]
Out[14]:
value 3
Name: 2, dtype: int64
Run Code Online (Sandbox Code Playgroud)
现在我想从中index找到n值大于 some的下一行threshold。例如,如果threshold is 0,结果应该是:
x
Out[9]:
value
2 3
3 2
4 1
5 0
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?
我试过了:
x.loc[2:x['value']>0,:]
Run Code Online (Sandbox Code Playgroud)
但当然这不会起作用,因为x['value']>0返回一个布尔数组:
Out[20]:
0 True
1 True …Run Code Online (Sandbox Code Playgroud) 我正在使用 IntelliJ 和数据库工具。我对一些数据有疑问,所以我删除了一行,但后来想添加更多......
我使用了克隆选项:
然后我修改了我的值并点击了commit按钮。
但是,插入失败并出现错误:
错误:重复的键值违反了唯一约束“主键 some_table”详细信息:键(id)=(58)已存在。
然后我尝试通过控制台并手动插入,但出现相同的错误。每次我执行此操作时,id 都会递增...我有数千条记录,因此我无法继续单击,直到我的手指折断。
如下所示id(创建表时):
id bigserial not null constraint "Primary Key some_table"
primary key
Run Code Online (Sandbox Code Playgroud)
当我尝试修改表时,我看到 id 的默认值设置如下:
nextval('some_table_id_seq'::regclass)
Run Code Online (Sandbox Code Playgroud)
我试过了:
INSERT INTO some_table (id,...columns..) VALUES (DEFAULT,...columns...);
Run Code Online (Sandbox Code Playgroud)
和
INSERT INTO some_table (...columns..) VALUES (...columns...);
Run Code Online (Sandbox Code Playgroud)
但我得到同样的错误...
我意识到我可以做一些事情,比如运行查询来获取 MAX id,然后进行插入,但这对我来说似乎有点荒谬。
如何定制我的INSERT以便它自动获取新的/下一个id?
例如,MSSQL 已使用newid().
这适用于虚幻引擎4.9
每一帧,我都想把它保存到文件中(覆盖现有的).
对于我制作的简单D3D11演示,我已经能够:
void Engine::CaptureFrame(D3DX11_IMAGE_FILE_FORMAT format, const LPCTSTR fileName){
backbuffer->GetResource(&resource);
ID3D11Texture2D* texture;
HRESULT hResult = resource->QueryInterface(__uuidof(ID3D11Texture2D), reinterpret_cast<LPVOID*>(&texture));
D3DX11SaveTextureToFile(deviceContext, texture, format, fileName);
//Clean up
texture->Release();
resource->Release();
}
Run Code Online (Sandbox Code Playgroud)
我也用OpenGL做了这个,使用了一个名为" FreeImage " 的库.
我不想修改UE4源,并且正在寻找一种"挂钩"到UE4并"捕获"帧的方法.
我已经设法用开放式广播软件做到了这一点,但我想在UE4内本地通过c ++或蓝图进行此操作.
我也知道我可以从编辑器中做到这一点,但这不是我想要做的.我想在运行时自动执行此操作.
我怎么能这样做?它甚至可能吗?
假设我有这样的查询:
SELECT * FROM a WHERE a.Category = 'liquid' ORDER BY a.MeasurementTime DESC;
Run Code Online (Sandbox Code Playgroud)
我想看到结果进入“实时”数据库。
如何为Postresql编写查询,查询完成后将重复查询?
我正在使用带有MVC和C#的Telerik Kendo网格.我有一个网格,填充了一些数据,并添加了一个复选框列 - 用于使用户可以选择所有.
现在,当我选中"selectAll"复选框时,将检查所有复选框(每行一个),因为它们应该是.
我想做什么:我希望能够双击一行并让chechbox检查更改 - 如果未选中,则dbl-click将检查它,反之亦然.
此外,由于Kendo网格允许用户选择许多(mousedown,拖动和mouseup - 就像在桌面上选择图标一样),我想拥有它,以便当用户执行此操作时,所有选定的行都有他们的选中复选框,如果已经选中复选框,则此操作将导致复选框变为未选中状态.
细节:
选中"selectAll"复选框时检查所有复选框的代码:
$(document).ready(function () {
var grid = $('#Grid').data('kendoGrid');
grid.thead.find("th:last")
.append($('<input class="selectAll" type="checkbox"/>'))
.delegate(".selectAll", "click", function () {
var checkbox = $(this);
grid.table.find("tr")
.find("td:last input")
.attr("checked", checkbox.is(":checked"))
.trigger("change");
});
});
Run Code Online (Sandbox Code Playgroud)
我是Javascript的初学者所以任何帮助将非常感激.
我有一个元组列表:
tups = [('a',5,'test'),('b', 8, 'test1')]
Run Code Online (Sandbox Code Playgroud)
对于每个元组,我需要在索引i处提取值.
显然,我可以遍历列表中的每个元组,获取我追求的值并将其弹出到数组中...但是,我认为应该有一个更好的方法.
理想情况下,我想将我的元组列表转换为矩阵或DataFrame(或类似的东西),我可以将列提取为数组.
例如,使用上面的元组列表,我想做类似以下的事情:
matrix = tups.AsMatrix(ncols=len(tups[0])) #All tups have the same number of values.
column_values = matrix[0]
print(column_values)
> 'a'
> 'b'
Run Code Online (Sandbox Code Playgroud)
我怎么能用Python 3做到这一点?我看过Pandas有一个DataFrame类型,但理想情况下我想这样做而不使用另一个库(除了numpy或本地python).
我知道这已被问了一千次......但是我仍然遇到问题,尽管有两天的尝试!
这是在本地运行.甚至我的localhost给了我一个403!
我的设置:
IIS中的每个站点都会使用旧的"HTTP Error 403.503 - Forbidden"错误来问候我.我摆弄了应用程序池设置,重新启动,重新注册(aspnet_regiis -i),使用"以管理员身份运行",将IUSER添加到安全性并完全控制,在Visual Studio 2015中创建了一个新的MVC应用程序并将该站点添加到IIS ......我已经尝试了所有我能想到的东西!
在删除Windows之前,有没有人对我有任何建议?
我在我的项目中使用 CosmosDB (Azure documentDB),用 Python 3 编写。
我已经找了一段时间了,但我不知道如何查询我的表。我已经看到了一些示例代码,但我没有看到如何查询的示例...我所能做的就是获取所有文档(当我的数据库 > 80GB 时并不理想)。
GitHub 存储库显示了一组非常小的数据库和集合操作:https://github.com/Azure/azure-documentdb-python/blob/master/samples/CollectionManagement/Program.py
下面的 SO帖子展示了如何读取所有文档...但没有展示如何执行诸如“WHERE = X;”之类的查询
如果有人能指出我正确的方向,并且可能提供一个展示如何运行查询的示例,我将非常感激。
假设我有一个ConcurrentDictionary:
var dict = new ConcurrentDictionary<string, someObject>();
dict.TryAdd("0_someA_someB_someC", obj0);
dict.TryAdd("1_someA_someB_someC", obj1);
dict.TryAdd("2_someA_someB_someC", obj2);
dict.TryAdd("3_someA_someB_someC", obj3);
Run Code Online (Sandbox Code Playgroud)
键中的<number>_是递增的并且是字典,不能保证元素是按顺序排列的。
现在,假设我想从字典中删除所有小于 的number项目2。我不知道这些键会是什么样子,只知道它们会以上面的数字为前缀。
如何从字典中删除键以小于值开头的所有元素2?
例如,此过程后生成的字典将如下所示:
dict.TryAdd("2_someA_someB_someC", obj2);
dict.TryAdd("3_someA_someB_someC", obj3);
Run Code Online (Sandbox Code Playgroud) 对于踢,我想看看C#for-loop的速度与C++ for循环的速度相比如何.我的测试是简单地遍历for循环100000次,100000次,并对结果取平均值.
这是我的C#实现:
static void Main(string[] args) {
var numberOfMeasurements = 100000;
var numberOfLoops = 100000;
var measurements = new List < long > ();
var stopwatch = new Stopwatch();
for (var i = 0; i < numberOfMeasurements; i++) {
stopwatch.Start();
for (int j = 0; j < numberOfLoops; j++) {}
measurements.Add(stopwatch.ElapsedMilliseconds);
}
Console.WriteLine("Average runtime = " + measurements.Average() + " ms.");
Console.Read();
}
Run Code Online (Sandbox Code Playgroud)
结果: Average runtime = 10301.92929 ms.
这是我的C++实现:
void TestA()
{
auto numberOfMeasurements = 100000;
auto numberOfLoops …Run Code Online (Sandbox Code Playgroud) 使用Python 3.X,我有一个数字列表,最大索引为2880.我想选择一个任意索引(例如1500)并在该索引5周围定义一个"半径".所以,我生成了一系列的指标:1495, 1496, 1497, 1498, 1499, 1500, 1501, 1502, 1503, 1504, 1505.
为此,我将使用以下内容:
min = 0
max = 2880
center = 1500
radius = 5
r = range(center - radius, center + radius + 1)
>> 1495, 1496, 1497, 1498, 1499, 1500, 1501, 1502, 1503, 1504, 1505
Run Code Online (Sandbox Code Playgroud)
问题是,如果我将中心定义为2878怎么办?我不想2873, 2874, 2875, 2876, 2877, 2878, 2879, 2880, 2881,2882 ......
我需要 2873, 2874, 2875, 2876, 2877, 2878, 2879, 2880, 0, 1, 2
Python 3中是否有内置函数,允许接受中心,半径和数组来执行此操作?就像是:
def GetBounds(listOfIntegers, …Run Code Online (Sandbox Code Playgroud) I'm performing a simple query via the Azure Portal "Query Explorer".
Here is my query:
SELECT * FROM c
WHERE c.DataType = 'Fruit'
AND c.ExperimentIdentifier = 'prod'
AND c.Param = 'banana'
AND Contains(c.SampleDateTime, '20171029')
ORDER BY c.SampleDateTime DESC
Run Code Online (Sandbox Code Playgroud)
However, I get the exception:
Order-by item requires a range index to be defined on the corresponding index path.
没有链接可以帮助您解决该错误,并且从该错误消息中我也无法幸免。
这是什么意思,为什么我的查询失败,该如何解决?
PS该_ts属性对我不利,因为我不想在插入记录时进行订购。
python ×4
python-3.x ×3
azure ×2
c# ×2
c++ ×2
postgresql ×2
asp.net ×1
asp.net-mvc ×1
for-loop ×1
grid ×1
iis ×1
iis-10 ×1
indexing ×1
jquery ×1
kendo-ui ×1
list ×1
pandas ×1
performance ×1
repeat ×1
series ×1
sql ×1
tuples ×1
windows-10 ×1