我在 MS-SQL 中有下表:
CREATE TABLE [dbo].[dbip_locations](
[ip_from] [bigint] NOT NULL,
[ip_to] [bigint] NOT NULL,
[country_code] [nvarchar](64) NOT NULL,
[region_name] [nvarchar](128) NOT NULL,
[city_name] [nvarchar](128) NOT NULL,
[latitude] [float] NOT NULL,
[longitude] [float] NOT NULL
)
Run Code Online (Sandbox Code Playgroud)
ip_from 和 ip_to 列是根据 ipv4 地址计算的,如下所示:
return (
convert(bigint, parsename(@ip, 1)) +
convert(bigint, parsename(@ip, 2)) * convert(bigint, 256) +
convert(bigint, parsename(@ip, 3)) * convert(bigint, 65536) +
convert(bigint, parsename(@ip, 4)) * convert(bigint, 16777216)
)
Run Code Online (Sandbox Code Playgroud)
然后,我使用使用上述计算转换为 bigint 的 ipv4 地址来搜索 ip 地址位于 ip_from 和 ip_to 列之间的行。
我总是会找到一行,虽然它不是由模式强制执行的,但这是数据中的现实。 …
index sql-server optimization clustered-index nonclustered-index
当我查看生产 SQL Server 2016 的服务器日志时,我看到多个条目:
[信息] 数据库 ID:[5]。正在删除不可恢复的检查点表行(id:294)。
对于每个条目,末尾的 id 加 1。
我用谷歌搜索了这个错误,实际上没有任何关于它的信息。这个条目是什么意思?听起来相当不祥。