私が読んだことはすべて、これは起こるべきではないと言っていますが、実際に起こります。私のデータベースのサイズはおよそ 15 GB で、数百のテーブルがあり、テーブルには数行から数百万行まであります。
orders
という名前のテーブルがあり、最初の列が呼び出さID
れ、テーブルの主キーであるとしましょう。他にも多くの列があり、そのうちの 1 つに という名前が付いていpolicy
ます。次のクエリを実行すると:
SELECT *
FROM orders
WHERE policy = 12345
ORDER BY ID
結果は次のようになると思います。
1
2
3
4
5
6
ただし、結果が次のようになる場合もあります。
1
2
4
5
3
6
あたかも3
別の場所に移動したかのようです。どのように/なぜこれが起こるのでしょうか?
実際のクエリは
SELECT * FROM loc_info WHERE PolInfo_ID=25634 ORDER BY LocInfo_ID
テーブル定義は
CREATE TABLE [dbo].[loc_info](
[LocInfo_ID] [int] IDENTITY(1,1) NOT NULL,
[PolInfo_ID] [int] NOT NULL,
[name] [varchar](100) NOT NULL,
[address1] [varchar](100) NULL,
[address2] [varchar](100) NULL,
[city] [varchar](100) NULL,
[state] [varchar](100) NOT NULL,
[zip] [char](10) NULL,
[county] [varchar](100) NULL,
[country] [varchar](100) NULL,
[loc_number] [varchar](20) NULL,
[occ_type_id] [int] NULL,
[occ_type] [varchar](100) NULL,
[flood_zone] [varchar](6) NOT NULL,
[coastal_zone] [varchar](20) NOT NULL,
[earthquake_zone] [varchar](20) NOT NULL,
[earthquake_group] [varchar](20) NULL,
[BuildingTIV] [numeric](18, 0) NULL,
[MachEquipTIV] [numeric](18, 0) NULL,
[StocksSuppliesTIV] [numeric](18, 0) NULL,
[OtherTIV] [numeric](18, 0) NULL,
[BusinessInterruptTIV] [numeric](18, 0) NULL,
[ExtraExpTIV] [numeric](18, 0) NULL,
[RentTIV] [numeric](18, 0) NULL,
[Property] [numeric](18, 0) NULL,
[IsUpload] [bit] NULL,
[IsMoved] [bit] NULL,
CONSTRAINT [PK_locations] PRIMARY KEY CLUSTERED
(
[LocInfo_ID] ASC
)WITH (PAD_INDEX = OFF
, STATISTICS_NORECOMPUTE = OFF
, IGNORE_DUP_KEY = OFF
, ALLOW_ROW_LOCKS = ON
, ALLOW_PAGE_LOCKS = ON
, FILLFACTOR = 90) ON [PRIMARY]
)