小编pil*_*cam的帖子

SQL Server:时间序列数据性能

我有一张超过10亿行时间序列数据的表格,具有出色的插入性能,但(有时)可怕的选择性能.

tblTrendDetails(PK如图所示排序):

PK  TrendTime    datetime
PK  CavityId     int
PK  TrendValueId int
    TrendValue   real
Run Code Online (Sandbox Code Playgroud)

该表不断提取新数据并清除旧数据,因此插入和删除性能需要保持活泼.

执行如下查询时,性能很差(30秒):

SELECT * 
FROM tblTrendDetails
WHERE TrendTime BETWEEN @inMinTime AND @inMaxTime
  AND CavityId = @inCavityId
  AND TrendValueId = @inTrendId
Run Code Online (Sandbox Code Playgroud)

如果我再次执行相同的查询(有相似的时间,但任何@inCavityId或者@inTrendId),性能非常好(1秒).性能计数器显示磁盘访问是第一次运行查询时的罪魁祸首.

有关如何在不显着影响插入或删除性能的情况下提高性能的任何建议?任何建议(包括完全更改底层数据库)都是受欢迎的.

sql-server performance sql-server-2000 time-series

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

C++二维指针数组分割故障

我正面临着2D指针数组的问题.它编译没有错误,但是当我尝试运行文件时,我得到的只是一行说我有一个分段错误.

我的头文件:

#ifndef __TWODARRAY_H__
#define __TWODARRAY_H__

template <typename T>
class TwoDArray {
  private:
    T** theArray;
    int numRows;
    int numCols;
    T defSpace;

  public:
    TwoDArray<T> (int r, int c, T def);
    ~TwoDArray<T>();
    void insert(int r, int c, T value);
    T access(int r, int c);
    void remove(int r, int c);
    void print();
    int getNumRows();
    int getNumCols();
};
#endif
Run Code Online (Sandbox Code Playgroud)

我的方法:

#include "TwoDArray.h"
#include <iostream>
#include <assert.h>
#include <string>

//initializes the 2D Array
template <typename T>
TwoDArray<T>::TwoDArray(int r, int c, T def) {
  assert(r > …
Run Code Online (Sandbox Code Playgroud)

c++ pointers segmentation-fault multidimensional-array

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