[英]How can I check if a sql query is deterministic?
我所说的确定性是查询将始终返回完全相同的结果集。 有没有办法做到这一点?
通常不认为查询是确定性的,因为基础表可以在调用之间进行更改。 确定性通常仅在谈论UDF时起作用。
我知道在数据库中生成确定性数据的唯一方法是在适当的时间点创建必要数据的快照。 通常,数据会被转换并加载到数据仓库中,并附带要归档的行的时间戳,以供以后检索。 可以针对数据仓库运行审核和其他类型的报告查询,并且结果在任何给定时间段内都是“确定性的”,但不能跨时间段。
如有必要,还可以将数据仓库中存储的信息预先计算为多维多维数据集以进行更快的处理。 为了保持适当的格式,应该只将数据仓库表插入其中,并且新一批数据应始终与唯一的时间戳关联。 通常最好以星形或雪花模式的某种形式存储数据,如果需要的话,这可以简化多维数据集的生成。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.